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\n"
    + "     
             c.id AS cid,
		    c.name AS cname,
		    s.id AS sid,
	        s.name AS sname,
		    s.age AS sage\n"
            + "         FROM\n"
            + "             classes AS c,student AS s\n"
            + "         WHERE\n"
            + "            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\n"
            + "           sc.sid, s.name sname, s.age sage, c.`id` cid, c.name cname\n"
            + "        FROM\n"
            + "           student s, course c, stu_cr sc\n"
            + "        WHERE\n"
            + "           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;    //课程名称
}
posted @ 2020-08-09 21:28  风冰水  阅读(130)  评论(0编辑  收藏  举报