用注解完成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映射文件
-
缺点: 直接注解进行多表查询特别繁琐,但是可以使用手动装配的方式多表查询(最佳)
建议在单表查询的时候使用注解,简化操作