Mybatis-Plus 发布 2.0 里程碑版本, 耗时几个月的准备今天 2.x 正式版本终于与大家见面了,这里感谢小伙伴:@Caratacus【清风】 @D.Yang【大杨】 @yanghu【卧虎】@tang_guo 【々果¤珍々 】 @nieqiurong【小聂】 @雾支楼 @vector_ding @mylyed @zuohl @liupeng 对 MP 的贡献和付出。
MP 2.0 代号:庐山 一则推荐下家乡的 AAAAA 级景区给大家,二则希望更多地人来认识 MP 了解它的真面目 。
【 望庐山瀑布 】 - 李白
日照香炉生紫烟,遥看瀑布挂前川。飞流直下三千尺,疑是银河落九天。
mybatis-plus 2.0 之 代码生成器使用
mybatis-plus 2.0 之 ActiveRecord 语法使用
【升级日志】
1.支持全局大写命名策略
2.自动分页Count语句优化
3.优化现有全局配置策略
4.优化全局验证策略
5.优化代码生成器(之前硬编码,现使用模板形式)
6.优化注入通用方法ByMap逻辑
7.添加自动选择数据库类型
8.改善SqlExplainInterceptor(自行判断MySQL版本不支持该拦截器则直接放行(版本过低小于5.6.3))
9.修复部分特殊字符字符多次转义的问题
10.优化现有EntityWrapper添加Wrapper父类以及Condition链式查询
11.Wrapper类使LIKE方法兼容多种数据库
12.优化日志使用原生Mybatis自带的日志输出提示信息
13.修复使用缓存导致使用分页无法计算Count值
14.修复PerformanceInterceptor替换?导致打印SQL不准确问题,并添加格式化SQL选项
15.添加多种数据库支持,请查看DBType
16.添加字符串类型字段非空校验策略(字符串类型自动判断非空以及非空字符串)
17.Wrapper添加类似QBC查询(eq、gt、lt等等)
18.支持AR模式(需继承Model)
19.合并所有Selective通用方法(例如:去除之前的insert方法并把之前的insetSelective改名为insert)
20.解决sql剥离器会去除--的情况
21.支持MySQL关键词,自动转义
22.精简底层Service、Mapper继承结构
23.不喜欢在XML中写SQL的福音,新增执行SQL方式,具体请查看SqlQuery
24.优化代码结构
25.解决issus[95,96,98,100,103,104,108,114,119,121,123,124,125,126,127,128,131,133,134,135],具体请查看里程碑mybatis-plus 2.0 计划中所有issus
引用来自“小王来了”的评论
数据库读写分离怎么实现呢,作者?引用来自“hero奔波儿”的评论
还有一点问题1. 批处理的方法可以放到mapp里面吗?比如insertBatch(List<T> entityList)只在service层
有时候另一个service想调用这个方法还得注入这个service,能写在mapper吗
2. 比如自定义查询 select * 。。。。。
能不能引用对应每个表生成字段映射?可以方便引用替换掉*
2、暂无这个考虑,自定义太灵活不好干涉
引用来自“hero奔波儿”的评论
还有一点问题1. 批处理的方法可以放到mapp里面吗?比如insertBatch(List<T> entityList)只在service层
有时候另一个service想调用这个方法还得注入这个service,能写在mapper吗
2. 比如自定义查询 select * 。。。。。
能不能引用对应每个表生成字段映射?可以方便引用替换掉*
2、暂无这个考虑,自定义太灵活不好干涉
引用来自“hero奔波儿”的评论
INSERT INTO record_item ( id, qid, answer, right_option, create_time, cid, rid ) VALUES ( ?, ?, ?, ?, ?, ?, ? )808983173521281024(Long), 42(Integer), C(String), D(String), 2016-12-14 18:33:13.405(Timestamp), 3(Long), 808982916326559744(Long)
您好,这是日志记录,请问这个2016-12-14 18:33:13.405(Timestamp),我在mysql中设置
该属性的类型为datatime,
生成的对象的属性类型为java.util.Date,
插入式的类型为Timestamp
插入到数据库的值为2016-12-14 10:33:13(本来应该是2016-12-14 18:33:13)
数据库URL为jdbc:mysql://XXXX/XXXX?useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC&useSSL=false
使用的是MySql5.7
连接jar包为6.0.2
请问怎么使得插入时的类型为datetime,避免这个时间误差?
还有,在配置中没有找到表名与java对象名关联方法?
引用来自“hero奔波儿”的评论
大神们,生成的东西难呢过不能去掉com.baomidou???可不可以啊?
引用来自“青苗”的评论
查看 https://my.oschina.net/u/241218/blog/804293 可以自定义包名的!引用来自“hero奔波儿”的评论
// 包配置PackageConfig pc = new PackageConfig();
pc.setModuleName("test");
mpg.setPackageInfo(pc);
我已经把test改成cn.qdgxy,结果生成的是com.baomidou.cn.qdgxy,还需要改其他东西吗
PackageConfig pc = new PackageConfig();
pc.serParent("cn.qdgxy");
pc.setModuleName("test");
mpg.setPackageInfo(pc);
参考 : http://mp.baomidou.com 代码生成器
引用来自“hero奔波儿”的评论
大神们,生成的东西难呢过不能去掉com.baomidou???可不可以啊?
引用来自“文敦复”的评论
冒昧问一句,mp和helper主要区别在哪里?