在使用MybatisPlus开发的时候,在执行添加功能的时候,使用MP的id生成策略(ASSIGN_ID)生成的id是一个很长的long类型的数字。数字长其实还没事,问题是我后端返回的那串数字和前端拿到的数据不一致,前端axio请求后,ID后面几位的是00 经过研究,MyBatis-Plus 的 ASSIGN_ID 策略使用雪花算法生成一个 19 位的 Long 类型数值。当这个数值传到前端时,由于超过了 JavaScript 中数字的最大范围,导致最后两位始终为 0。 第一种方案是,在每个实体类的ID字段上加注解…

2024-11-27 0条评论 69点热度 0人点赞 admin 阅读全文

在使用LambdaQueryWrapper的时候,有时候会从前端(或者根据一些业务逻辑)传过来一个不确定的属性名,例如Person类中一个name属性,这个属性名需要加入到LambdaQueryWrapper的查询或者排序中去,LambdaQueryWrapper因为是Lambda的方式,只能传入SFunction,这就需要把name转成SFunction。 工具类如下(FunctionTools.java): public class FunctionTools { /** * 可序列化 */ private s…

2024-09-22 0条评论 299点热度 0人点赞 admin 阅读全文

在用MyBatis连接Oracle操作的时候,例如更新或者插入记录的时候,报错:java.sql.SQLException: Invalid column type: 1111 经查,需要在配置中将:jdbcTypeForNull设置成NULL,记录下,具体配置如下 xml配置: <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"> <…

2023-05-24 0条评论 512点热度 0人点赞 admin 阅读全文

MyBatis中在XML写SQL,如果遇到特殊字符(例如大于等符号)需要转义或特别处理,因为要符合xml的约定。 原符号 < <= > >= & ' " 转义后符号 &lt; &lt;= &gt; &gt;= &amp; &apos; &quot; 例如:sql如下: select * from t_table where create_date &gt;= #{startDate} and create_date &a…

2023-02-25 0条评论 817点热度 0人点赞 admin 阅读全文

使用MyBatis-Plus遇到一个问题,就是使用updateById()、update()做更新的时候,我想要把字段更新成NULL,但是却发现是不行的,更新成其他非NULL的值却是可以的。 问题原因 mybatis-plus中有一个字段更新(也有新增等)策略,FieldStrategy, 有三种策略: IGNORED:0 忽略 NOT_NULL:1 非 NULL,默认策略 NOT_EMPTY:2 非空 而默认更新策略是NOT_NULL:非 NULL;即通过接口更新数据时数据为NULL值时将不更新进数据库。 解决方…

2022-12-31 0条评论 974点热度 0人点赞 admin 阅读全文

如题,在MyBatisPlusMapper种写SQL语句,需要用到in语法,in里面的内容是一个list通过变量传入的,mapper里面需要组装出sql语句来,可以使用foreach来实现,示例代码如下: <select id="listLabIdsByServiceCatIds" resultType="java.lang.Long"> select * from t_test where 1=1 <if test="serviceCatIds != null and serviceCatIds…

2022-11-12 0条评论 477点热度 0人点赞 admin 阅读全文

例如班级表(Clazz)-和学生表(Student)的关系是一对多的关系,我们希望在加载一个班级的时候,能自动加载这个班级下的学生列表。 Java实体类如下(学生实体类省略): @TableName("t_class") public class Clazz implements Serializable { @TableId private Long id; private Date createDate;// private Date updateDate; private String name;//班级名称…

2022-10-22 0条评论 949点热度 0人点赞 admin 阅读全文

例如这样的场景:学生和班级是多对一的关系,我们在查询学生(Student)的时候,(t_student表有一个clazz_id会对应到t_clazz表的ID),希望自动带出这个学生所属的班级(Clazz) 多方(Student)的Mapper.xml: 注意这里使用了association来表明Student下面的有对应一的属性:clazz(这个学生所属班级) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//my…

2022-10-19 0条评论 1161点热度 0人点赞 admin 阅读全文

今天在使用MyBatis时候,someMapper.selectById() 或者其他CRUD时候,抛出异常: aused by: java.lang.IndexOutOfBoundsException: Index: 14, Size: 14 at java.util.ArrayList.rangeCheck(ArrayList.java:659) at java.util.ArrayList.get(ArrayList.java:435) at org.apache.ibatis.executor.result…

2022-10-14 0条评论 805点热度 0人点赞 admin 阅读全文

使用MyBatis很多时候需要新建MapperXML文件,希望有一个比较方便的方式(例如新建Java文件,就是Project的点右键新增的菜单里有),我们也希望在那个菜单里出现MyBatis的Mapper文件。 操作步骤如下所示: 设置Preferences -> 编辑器Editor -> 文件和代码模板File and Code Templates,点击+加号按钮,创建一个新的模板文件,如图所示: 其中,需要输入模板文件的名称(MyBatis Mapper),以及后缀名填写为:xml。 模板文件的内容…

2022-10-07 0条评论 660点热度 0人点赞 admin 阅读全文
12