mybatis
文章平均质量分 65
Oxye
我们都有选择权
展开
-
SpringBoot+Mybatis 动态多数据源
基于SpringBoot、Mybatis、Druid实现一个服务连接多个数据库的动态数据源代码,本文中数据源是固定两个,在配置文件和代码中写死成两个了,如果需要更多可以修改配置和代码,更灵活的方式是把数据源写成数组,这样代码就不用改多少。可以看出代码中的数据源配置来源是配置文件,那其实通过接口等方式动态控制数据源和运行中的代码也是可以的,客官可以自己实现。原创 2023-05-11 10:46:01 · 389 阅读 · 1 评论 -
SpringBoot Mybatis Oracle相关报错解决与原理源码解析:java.sql.SQLException 无效的列类型 1111
TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property.java.sql.SQLException: 无效的列类型: 1111原创 2022-10-25 18:47:17 · 5058 阅读 · 2 评论 -
Mybatis:字符比较导致的报错 MyBatisSystemException PersistenceException NumberFormatException
MyBatisSystemException PersistenceException NumberFormatException原创 2022-07-15 11:49:18 · 759 阅读 · 0 评论 -
Spring自定义数据源配置不当引起的Mybatis拦截器Interceptors 失效/不生效
目录内容Interceptor接口与@Intercepts注解PageHelper实现拦截器自定义数据源与拦截器的问题自定义数据源注入拦截器内容Interceptor接口与@Intercepts注解org.apache.ibatis.plugin.Interceptor 是ibatis包的接口,org.apache.ibatis.plugin.Intercepts 是ibatis包的注解我们可以实现Interceptor 接口,并标注@Intercepts注解,做一个mybatis执行SQL时的原创 2021-10-12 20:29:59 · 8835 阅读 · 6 评论 -
Mybatis处理 # 和 & 占位符的源码原理
网上的解释都太肤浅,难以辨别真假,就自己跟了一下Mybatis源码下面是过程记录,不详细,有空补全分析$ :进来是$org.apache.ibatis.scripting.xmltags.DynamicSqlSourceorg.apache.ibatis.scripting.xmltags.TextSqlNode 直接替换参数#:org.apache.ibatis.scripting.xmltags.DynamicSqlSource进来是?org.apache.ibatis.scripti原创 2021-09-07 17:35:56 · 594 阅读 · 0 评论 -
tk.MyBatis:通过设置safeDelete、safeUpdate,防止BaseMapper导致的全表数据操作
ty.mybatis 动态生成SQL原理,源码解析:ty.mybatis接口使用不慎导致的全表删除一文中,从源码分析了tk.mybatis如何生成SQL本文中,介绍一个可以避免使用tk mybatis不慎导致全表修改操作的配置配置在yml配置文件中设置safeDelete,见文档https://github.com/abel533/Mapper/wiki/3.config原理在生成SQL模板时,通过配置项判断是否加空参数校验...原创 2021-01-13 15:44:48 · 1213 阅读 · 2 评论 -
正确可用版:SpringBoot+Mybatis-plus+Druid 实现配置多数据源(数据库)
前言此文介绍的是在SpringBoot中使用Mybatis配置多数据源(多个数据库),整合Druid网上有很多文章,翻了翻,但是都有问题啊,有的是没使用Druid,使用了默认的Hirika,有的是配置文件不给或者给的是Hirika能用的配置,层级不对,所以我自己来记一下代码pom文件maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid原创 2021-01-04 11:20:07 · 12373 阅读 · 3 评论 -
tk.mybatis:delete()和deleteByPrimaryKey()的区别(源码+生成结果)
目录源码分析结论源码分析在DeleteMapper接口中,@DeleteProvider注解的type属性指定了BaseDeleteProvider类 /** * 根据实体属性作为条件进行删除,查询条件使用等号 * * @param record * @return */ @DeleteProvider(type = BaseDeleteProvider.class, method = "dynamicSQL") int delete(原创 2020-12-31 11:03:04 · 5576 阅读 · 0 评论 -
ty.mybatis 动态生成SQL原理,源码解析:ty.mybatis接口使用不慎导致的全表删除
目录问题定位问题源码分析结论建议问题今天遇到了一个问题,某个版本之后,出现了几次某张数据表被清空的情况,第一次还以为是谁手动删除的数据,但是出现第二第三次,就怀疑到代码头上了,找了一下是有人使用第三方tk.mybatis的方法不慎导致的bug,接下来讲一下分析过程和结论定位问题全局搜了操作被清空表的地方,mapper.xml里没有delete语句,那就可能是调用了第三方方法导致不规范导致的,然后定位到下图的代码,delete()发现是tk.mybatis包封装的方法,这就应证了猜想,入参有问题,原创 2020-08-14 20:38:40 · 963 阅读 · 0 评论