mybatis
Bee.F
这个作者很懒,什么都没留下…
展开
-
mybatis多字段嵌套映射
可直接翻到最后面看原理部分~应用场景:最近在做考勤管理的临时排班,需要根据用户id查询临时排班表记录,临时排班可以嵌套多个计划模版;mybatis的xml文件如下:<select id="select" parameterType="userTempPlan" resultMap="userTempPlanMap"> select user_temp_plan.user_id, user_temp_plan.scheduled_date, schclass.原创 2021-11-10 07:17:48 · 876 阅读 · 0 评论 -
mybatis if判断Integer类型的值为0情况
应用场景:需求:需要通过状态(status=0或1)来查询数据,status类型为Integer<if test="status !=null and status!=''"> and status = #{status}</if>当传入status=0时,并没有进入该条件里面;但传入1或其他都可以根据status条件查询;为什么呢?通过源码了解到,mybatis在预编译sql时,使用OGNL表达式来解析if标签,对于Integer类型属性,在判断不等于’‘时,例原创 2021-11-09 23:01:45 · 2402 阅读 · 0 评论 -
tk.mapper通用mapper报错(Error creating bean with name ‘commonMapper‘ defined in file xxx)
报错信息:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2020-05-07 17:26:23.763 ERROR 14960 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springf原创 2021-11-09 22:37:59 · 822 阅读 · 0 评论 -
mybatis的延迟加载及不生效原因
延迟加载的配置fetchType=“lazy”<!-- userMapper.xml --><resultMap id="userRoleMapSelect" extends="userMap" type= "ser" > <association property="role" fetchType="lazy" column="id" select="tk.mybatis.simple.mapper.RoleMapper.selectRoleByid" />原创 2021-11-09 22:03:50 · 2172 阅读 · 0 评论 -
myBatis ofType和 javaType区别
javaType是用来指定pojo中属性的类型,而ofType指的是映射到集合属性中pojo的类型;@Datapublic class xxxVo implements Serializable { // 其他属性 // 类型 private List<Integer> types; }查询关联表类型,一对多【伪代码】<resultMap id="xxxVoMap" type="com.xxx.xxxVo" extends="Bas原创 2021-10-01 17:35:43 · 367 阅读 · 0 评论 -
mybatis中sql语句CDATA标签用法
CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。在 XML 元素中,"<" 和 “&” 是非法的;“<” 会产生错误,因为解析器会把该字符解释为新元素的开始;“&” 也会产生错误,因为解析器会把该字符解释为字符实体的开始;在mapper文件中写sql语句时,遇到特殊字符时,如:< 等,建议使用 <![CDATA[ sql语句 ]]> 标记,将sql语句包裹住,不被解析器解析;例如:【伪代码】原创 2021-01-15 23:47:14 · 628 阅读 · 0 评论 -
Error invoking sqlprovider method (tk.mybatis.mapper.provider.base.BaseselectProvider.dynamicSQL)
改造老项目…启动报错:Error invoking sqlprovider method (tk.mybatis.mapper.provider.base.BaseselectProvider.dynamicSQL). Cause: java.lang.InstantiationException: tk.mybatis.mapper.provider.base.BaseSelectProvider原因:tk.mybatis 版本太低导致的;将1.x.x的版本升级到2.x.x;<!--原创 2021-01-13 22:55:14 · 3661 阅读 · 0 评论 -
mybatis执行报错,Error querying database. Cause: java.sql.SQLException: sql injection violation
mybatis执行报错,Error querying database. Cause: java.sql.SQLException: sql injection violation, comment not allow2小时调试,血的教训!最近在写考勤查询的sql,sql比较复杂,也写了很多注释,没想到这个报错是注释引起的,调试了2小时!!mybatis只支持 <!-- 注释--> 这种形式的注释,--注释 或 /* 注释*/ 都不支持;我是如何发现的看这控制台打印的部分信息:原创 2020-05-22 00:03:43 · 8460 阅读 · 2 评论