10-Mybatis使用注解开发

用注解完成CRUD

在接口的抽象方法上使用以下注解:

  • @select(“sql语句”)

  • @insert(“sql语句”)

  • @delete(“sql语句”)

  • @update(“sql语句”)

以替代***mapper.xml文件,就不需要写mapper.xml映射文件了。

public interface StudentMapper {
    //----------使用注解----------

    //根据姓名查学生信息
    @Insert("insert into student values(null,#{sname},#{age},#{cid})")
    public int addStu(Student student);

    //根据姓名删除学生信息
    @Delete("delete from student where sname = #{param1}")
    public int deleteByName(String name);

    //根据sid修改学生班级
    @Update("update student set cid = #{cid} where sid = #{sid}")
    public int updateBySid(Student student);

    //根据姓名查学生信息
    @Select("select * from student where sname = #{param1}")
    public Student selByName(String name);
}

运行代码:

@Test
public void addStudent(){
    Student s = new Student();
    s.setSname("阿飞");
    s.setAge(18);
    s.setCid(4);
    int i = studentMapper.addStu(s);
    System.out.println(i);
    sqlSession.commit();
    sqlSession.close();
}

@Test
public void deleteByName(){
    int i = studentMapper.deleteByName("张三");
    System.out.println(i);
    sqlSession.commit();
    sqlSession.close();
}

/**
* 将sid为14的学生班级改为3班
*/
@Test
public void updateBySid(){
    Student s = new Student();
    s.setCid(3);
    s.setSid(14);
    studentMapper.updateBySid(s);
    sqlSession.commit();
    sqlSession.close();
}

@Test
public void selByName(){
    Student student = studentMapper.selByName("阿飞");
    System.out.println(student);
    sqlSession.close();
}

总结:

  • 优点: 简洁,可以不使用****mapper.xml映射文件

  • 缺点: 直接注解进行多表查询特别繁琐,但是可以使用手动装配的方式多表查询(最佳)

建议在单表查询的时候使用注解,简化操作

原文地址:https://www.cnblogs.com/soft-test/p/14825446.html