讲师回答 / 老猿
你好,我没有测试过,mp id自增的雪花算法的并发瓶颈是多少,个人认为每秒生成的id数量与机器性能肯定是有关系的。我在网上查到一篇文章说“整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞(由机器ID作区分),并且效率较高,经测试,SnowFlake每秒能够产生26万ID左右。”
2019-08-02
讲师回答 / 老猿
有个办法,使用MP的自动填充功能,你要填充的实体类属性上增加@TableField注解,注解中fill属性,设置填充的类型。然后在自己重写的继承MetaObjectHandler的类中,编写字段填充逻辑。在自动填充逻辑中,就可以调用雪花算法的类生成数字串的方法,然后填充进你要填充的字段。自动填充功能可以参考官方文档,地址:https://mybatis.plus/guide/auto-fill-metainfo.html
2019-08-02
讲师回答 / 老猿
年龄等于27或者小于29,只有Boss符合。王天风是boss的手下,他的manager_id就是Boss的主键,当然删不掉,提示也挺清楚,就是有外键约束问题。你要删除Boss,有几种办法,第一种需要先删除王天风,当然王天风也是有手下的,其实得最先删除王天风的下级。方法二,设置主外键级联删除,一般很少有这么干的风险很大。方法三:设置如果主表中记录删除,引用主表记录的外键设置为null,当然这中设置也存在风险。
2019-07-25
讲师回答 / 老猿
与多租户sql解析器的实现是类似的,具体你可以参考多租户sql解析器,他俩的最大区别是,动态表名解析器,配置的处理器可以是多个,通过可以通过DynamicTableNameParser类型对象的setTableNameHandlerMap设置,篇幅有限,我粘贴出关键部分代码: DynamicTableNameParser parser = new DynamicTableNameParser(); Map<String, ITableNameHandler> handlerM...
2019-07-25
讲师回答 / 老猿
从3.1.1开始MP提供了动态表名SQL解析器,实现了表名的动态替换,但是也是一次查一张表。你如果一次想查询多张表的结果,就得使用分库分表插件了,例如:Sharding-JDBC
2019-07-24
讲师回答 / 老猿
同学,你数据库编码是否为UTF-8,程序的编码是否为UTF-8,如果不是,都设置为UTF-8再试试。还有name乱码,是怎么乱码,是存到数据库中乱码,还是数据库中正常,取出来乱码?
2019-07-18
讲师回答 / 老猿
可以的呀,同学。可以这样写,例如:query.select(User.class, info->info.getColumn().equals("id"));
2019-07-17
讲师回答 / 老猿
1、2.x版本是EntityWrapper,没有QueryWrapper。2、你可以看看mybatis-plus的启动器引用的坐标对不对,要引用mybatis-plus-boot-starter而不是mybatis-plus。3、启动类或配置类上是否增加了@MapperScan("你的Mapper接口所在的包")注解。
2019-07-12