Mybatis中可以是用注解来替代xml文件编写sql,即省略了.xml文件,全部代码在接口中就可以完成。
将注解写在接口上面,代替xml文件中的标签:
常用的注解有:
1)@Select:替代<select>标签 用来编写select查询语句
查询单条数据:
@Select("select id,name as studentName,classid,versionfrom h_student where id=#{id}")
Student2 selectByIds(Integer id);
查询全部数据:
//只写@Select,默认是返回类型为ResultType @Results(id="baseResultMap",value = { @Result(id = true,property = "id",column = "id"), @Result(property = "studentName",column = "name"), @Result(property = "classid",column = "classid"), @Result(property = "version",column = "version") }) @Select("select * from h_student") List<Student2> selectAll();
2)@insert:替代<insert>标签,用来编写insert语句
//通过注解的方式编写插入 statement:编写selectKey的sql语句 @SelectKey(keyProperty = "id",before = true,resultType = Integer.class, statement = "select seq_t_student.nextval from dual") @Insert("insert into h_student(id,name) values(#{id},#{studentName})") int insert(Student2 student2);
3)@update:替代<update>标签,用来编写update语句
@Update("update h_student set name=#{studentName} where id=#{id}") int update(Student2 student2);
4)@delete:替代<delete>标签,用来编写delete语句
@Delete("delete from h_student where id=#{id}") int delete(Integer id);
5)@Results:替代<resultMap> 标签,定义结果集映射
上面有;
6)@Result:替代<result>标签,配置属性与列名的对应关系
上面有;
7)@SelectKey:替代<selectKey>标签,配置主键生成策略
上面有;
测试如下:
System.out.println("===========测试插入============"); //Student2 student2=new Student2(); //student2.setStudentName("艾弗森"); //int insert = mapper.insert(student2); //System.out.println(insert); System.out.println("==========测试查询==============="); Student2 student21 = mapper.selectByIds(3); System.out.println(student21); System.out.println("===============测试查询所有============="); List<Student2> student2s = mapper.selectAll(); System.out.println(student2s); System.out.println("==========测试删除=========="); int delete = mapper.delete(1); System.out.println(delete); System.out.println("===========测试修改========"); Student2 student2=new Student2(); student2.setId(4); student2.setStudentName("杜兰特"); int update = mapper.update(student2); System.out.println(update);