首先 配置好sqlmapconfig.xml中的相关属性
然后在mapper包中进行注解开发
@Insert注解
注解属性value:写入sql语句
@Options注解
1.实现添加新数据的主键封装
2.注解属性:
useGenerateKeys:使用生成的主键,配置为true
keyProperty:主键封装的pojo对象属性
@SelectKey注解
1.实现添加数据的主键封装
2.注解属性
statement:要执行的sql语句
before:在添加sql语句之前还是之后进行,配置为false
KeyProperty:主键封装的pojo对象属性
@Update注解
注解实现更新数据
value值 sql语句
@Delete 注解
注解实现删除操作
@Select注解
注解实现查询操作
动态sql语句 之where和if
@Select(“
动态sql语句之foreach
@Select("< script>select id,username,sex,birthday,address from user" +
“<foreach collection = “list” open = “where id in(” close = “)” separator = “,” item = “item”>” +
“#{item}” +
“< /foreach>” +
“< /script>”)
List< User> queryUserByListIds(List< Integer> ids);
注意:在拼接这些语句时需要加一个< script>标签 告诉mybatis这是sql语句
@Results注解
配置手动映射 取代resultMap标签
@Result 注解 配置手动映射 取代result标签
@Select(" SELECT o.id,o.user_id,o.number,o.createtime,o.note FROM orders o")
@Results({
//配置主键映射,id默认false,不是主键
@Result(id = true,column = “id”,property = “id”),
//配置其他映射关系
@Result(column = “user_id”,property = “userId”),
@Result(column = “number”,property = “number”),
@Result(column = “createtime”,property = “createtime”),
@Result(column = “note”,property = “note”),
/*
配置关联查询用户表
property查询的pojo对象哪个属性做为条件查询
这个属性还是个pojo对象
column查询条件的pojo对象的属性
@One注解配置一对一的另一个查询语句
此语句需要对应的接口方法出现
*/
@Result(column = “user_id”,property = “user”,javaType = User.class,
one = @One(select = “com.itheima.mapper.UserMapper.queryUserByUserId”,fetchType = FetchType.LAZY))
})
List< Orders> queryOrdersUser();