Mybatis使用注解的方式CRUD包括批量插入更新
来源:互联网 发布:js修改div高度 编辑:程序博客网 时间:2024/06/16 00:41
定义一个Mapper接口:
@Mapper@Repositorypublic interface ConfigMapper {}
查询注解@Select
:
@Select("select * from config where id=#{id}")Config findById(Long id);
删除注解@Delete
:
@Delete("delete from config where id=#{id}")@Options(useGeneratedKeys = true)Long deleteById(Long id);
其中@Options
注解常用属性:
- flushCache:刷新缓存策略,有DEFAULT
,TRUE
,FALSE
三种值,默认DEFAULT
表示刷新查询语句的缓存
- useCache:默认true,表示使用缓存
- fetchSize:查询时的获取数量
- useGeneratedKeys:默认false,是否返回插入的id
- keyProperty:实体类id属性
- keyColumn:实体类属性对应数据库的字段
插入注解@Insert
:
@Insert("insert into config(cron) values(#{cron})")@Options(useGeneratedKeys = true)Long save(Config config);
批量插入@InsertProvider
@InsertProvider(type = ConfigDaoProvider.class, method = "saveAll")void saveAll(@Param("list") Collection<Config> configs);
ConfigDaoProvider.java:
public String saveAll(Map map) { List<Config> configs = (List<Config>) map.get("list"); StringBuilder sb = new StringBuilder(); sb.append("insert into config"); sb.append("(cron)"); sb.append("values"); MessageFormat mf = new MessageFormat("#'{'list[{0}].cron'}'"); for (int i = 0; i < configs.size(); i++) { sb.append("("); sb.append(mf.format(new Object[]{i})); sb.append(")"); if (i < configs.size() - 1) { sb.append(","); } } return sb.toString(); }
更新注解@Update
:
@Update("update config set cron=#{cron} where id=#{id}")void update(Config config);
批量更新@UpdateProvider
:
@UpdateProvider(type = ConfigDaoProvider.class, method = "updateAll")void updateAll(@Param("list") Collection<Config> configs);
updateAll方法:
public String updateAll(Map map) { List<Config> configs = (List<Config>) map.get("list"); StringBuilder sb = new StringBuilder(); sb.append("update config "); sb.append("set cron=case id "); MessageFormat mfCron = new MessageFormat("#'{'list[{0}].cron'}'"); for (int i = 0; i < configs.size(); i++) { sb.append("when "); sb.append(configs.get(i).getId()); sb.append("then "); sb.append(mfCron.format(new Object[]{i})); } sb.append("end "); sb.append("where id in"); sb.append("("); for (int i = 0; i < configs.size(); i++) { sb.append(configs.get(i).getId()); if (i < configs.size() - 1) { sb.append(","); } } sb.append(")"); return sb.toString(); }
以上。。。
阅读全文
0 0
- Mybatis使用注解的方式CRUD包括批量插入更新
- mybatis 注解方式批量插入
- mybatis注解方式进行批量插入
- Mybatis批量插入、更新
- Mybatis使用注解的方式一次插入多条数据
- Mybatis 批量插入、批量更新
- Mybatis批量插入的使用
- mybatis的批量插入与更新
- 基于MyBatis的批量插入更新实现
- Mybatis的批量插入与更新
- Mybatis通过注解方式实现批量插入数据库
- mybatis使用注解方式的删除更新操作
- mybatis批量更新的几种方式
- mybatis的CRUD(注解版)
- Mybatis批量更新和插入
- mybatis批量更新和插入
- mybatis 批量插入 ,更新总结
- Mybatis批量插入更新数据
- Java里遇到的一些问题
- MyBatis中大于号以及小于号的表达方式
- 通过ping++平台完成移动端H5支付
- 微信获取openid
- ECMAScript6新增功能续
- Mybatis使用注解的方式CRUD包括批量插入更新
- Linux运维面试必备
- 关闭selinux
- 神经机器翻译中的Attention机制
- 20个非常有用的Java程序片段
- jquery通过cookies记住用户名和密码
- sql中dml,ddl,dcl的区别
- MySQL索引背后的数据结构及算法原理
- loadrunner获取登录态的两种方式