• MyBatis注解开发


    MyBatis注解开发

    介绍

    常用注解

    @Select(“查询的 SQL 语句”):执行查询操作注解

    @Insert(“新增的 SQL 语句”):执行新增操作注解

    @Update(“修改的 SQL 语句”):执行修改操作注解

    @Delete(“删除的SQL 语句”):执行删除操作注解

    注解实现"增删改查"操作
    • 创建接口和查询方法
    • 在核心配置文件中配置映射关系
    • 编写测试类
    StudentMapper.java
    public interface StudentMapper {
        //查询全部
        @Select("SELECT * FROM student")
        public abstract List<Student> selectAll();
    
        //新增操作
        @Insert("INSERT INTO student VALUES (#{id},#{name},#{age})")
        public abstract Integer insert(Student stu);
    
        //修改操作
        @Update("UPDATE student SET name=#{name},age=#{age} WHERE id=#{id}")
        public abstract Integer update(Student stu);
    
        //删除操作
        @Delete("DELETE FROM student WHERE id=#{id}")
        public abstract Integer delete(Integer id);
    }
    
    MyBatisConfig.xml
    <configuration>
       
        <!--注解实现、配置映射关系-->
        <mappers>
            <package name="com.itheima.mapper"/>
            
            <!-- 也可以配置的范围大一点 com下所有 -->
            <!--  <package name="com"/> -->
            
        </mappers>
    </configuration>
    
    小结

    常用注解

    @Select(“查询的 SQL 语句”):执行查询操作注解

    @Insert(“查询的 SQL 语句”):执行新增操作注解

    @Update(“查询的 SQL 语句”):执行修改操作注解

    @Delete(“查询的SQL 语句”):执行删除操作注解

    配置映射关系

    MyBatis注解实现多表操作

    一对一

    推荐vo

    public interface CardMapper {
    
        /*方式二  查询全部 */
        @Select("SELECT 
                        c.id AS cid, 
                        c.number,
                        c.pid,
                        p.`name`, 
                        p.age 
                    FROM 
                        card c,person p 
                    WHERE 
                        c.pid=p.id
                ")
        public abstract List<PersonCardVo> selectAllZls();
        
    }
    

    创建Javabean

    public class PersonCardVo {
    
        private Integer pid;     //人表主键id
        private String name;    //人的姓名
        private Integer age;    //人的年龄
    
        private Integer cid;     //身份证号表主键
        
        private String number;  //身份证号
    }
    
    一对多
    public interface ClassesMapper {
        //查询全部
        @Select("SELECT
    "
        + "     
                 c.id AS cid,
    		    c.name AS cname,
    		    s.id AS sid,
    	        s.name AS sname,
    		    s.age AS sage
    "
                + "         FROM
    "
                + "             classes AS c,student AS s
    "
                + "         WHERE
    "
                + "            c.id=s.cid")
        public abstract List<ClassesStudentVo> selectAllZls();
    }
    

    创建vo对象

    public class ClassesStudentVo {
    
        private Integer cid;     //班级的主键id
        private String cname;    //班级名称
    
        private Integer sid;     //学生的主键id
        private String sname;    //学生姓名
        private Integer sage;    //学生年龄
    }
    

    使用

     //4.获取ClassesMapper接口的实现类对象
    ClassesMapper mapper = sqlSession.getMapper(ClassesMapper.class);
    
    //5.调用实现类对象中的方法,接收结果
    List<ClassesStudentVo> list = mapper.selectAllZls();
    
    //6.处理结果
    for (ClassesStudentVo classesStudentVo : list) {
        System.out.println(classesStudentVo);
    }
    
    多对多
    public interface StudentMapper {
    
        /*方式二  查询全部*/
        @Select("SELECT
    "
                + "           sc.sid, s.name sname, s.age sage, c.`id` cid, c.name cname
    "
                + "        FROM
    "
                + "           student s, course c, stu_cr sc
    "
                + "        WHERE
    "
                + "           sc.sid=s.id AND sc.cid=c.id")
        public abstract List<StudentCourseVo> selectAllZls();
    }
    

    vo对象

    public class StudentCourseVo {
    
        private Integer sid;     //学生的主键id
        private String sname;    //学生姓名
        private Integer sage;    //学生年龄
    
        private Integer cid;     //课程的主键id
        private String cname;    //课程名称
    }
    
    镜花水月
  • 相关阅读:
    B+树实现
    一些比较特殊的计数序列
    codeforce刷题(六)
    codeforces刷题(五)
    Swap and Flip
    leetcode刷题(三)
    leetcode刷题(二)
    leetcode刷题(一)
    C语言学习笔记-变量存储
    水笔记
  • 原文地址:https://www.cnblogs.com/fengbingshui/p/13466475.html
Copyright © 2020-2023  润新知