`

mybatis使用问题记录

 
阅读更多

mybatis使用问题记录

     1. 与spring整合 启动报错, 一直读取不到properties中设置的属性

        

<bean id="scanner" class="org.mybatis.spring.MapperScannerConfigurer">  
    <property name="annotationClass" value="org.springframework.stereotype.Repository"></property>  
    <property name="basePackage" value="com.xxx.*.mapper"></property>  
    <property name="sqlSessionFactory" value="sqlSessionFactory"></property> 
</bean>

 

         原因:mybatis配置中使用了MapperScannerConfigurer进行自动扫描,会使spring的propertyPlaceholderConfigurer失效,

因为MapperScannerConfigurer在解析加载bean定义阶段设置了sqlSessionFactory的话会提前初始化一此类,

此时propertyPlaceholderConfigurer还没来得及替换定义的变量。

         解决: 使用sqlSessionFactoryBeanName 代替sqlSessionFactory

       

<bean id="scanner" class="org.mybatis.spring.MapperScannerConfigurer">  
    <property name="annotationClass" value="org.springframework.stereotype.Repository"></property>  
    <property name="basePackage" value="com.xxx.*.mapper"></property>  
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> 
</bean>

 

   2.项目中之前是用的sqlserver数据库,需要连到oracle上  直接切换运行会报错(只有在插入数据,更新数据时报错)

              java.sql.SQLException: 无效的列类型

                              OraclePreparedStatement.setNull()

         原因:实体mapper.xml 配置文件  在插入,更新的sql上都没有写加对应数据类型

          如  values(#{username,jdbcType=VARCHAR})    所以插入null数据会报错  没有自动转换成对应类型。 

          加上jdbcType = 类型之后正确,但是工作量太大,每个mapper.xml都需要改动

       查找mybatis配置说明发现settings下属性: jdbcTypeForNull   此属性默认设置是OTHER,在oracle数据库驱动使用时处理null会有问题,需要指定此属性为null

   


设置参数 描述 有效值 默认值
jdbcTypeForNull

Specifies the JDBC type for null values when no specific JDBC type

was provided for the parameter. Some drivers require

specifying the column JDBC type but others work with generic values like NULL, VARCHAR or OTHER.

JdbcType enumeration. Most common are: NULL, VARCHAR and OTHER OTHER

               设置<settings>

                               <setting name="jdbcTypeForNull" value="NULL"></setting>

                        </settings>         

     运行正常

 

 3. 待续  遇到后补上

分享到:
评论

相关推荐

    Mybatis拦截器记录数据更新历史记录到MongoDB

    Mybatis拦截器记录数据更新历史记录到MongoDB的源码,另外需要配置拦截器到mybatis配置文件中。

    mybatis慢SQL插件

    使用方法: 找到你springboot项目中的配置文件,增加如下配置即可 application.yml 配置如下: sql: slow-threshold: 100 或 application.properties 配置如下: sql.slow-threshold=100 参数解释:以上...

    mybatis在非spring环境下如何使用

    一般使用mybatis的环境,大多都是别人已经配置好的。直接用就好了,如何自己搭建呢?其实很简单。看官方的文档就可以解决了。主要为了学习mybatis最基础的配置。我文章中的方法不基于spring,一般很少会在真实项目中...

    通过Mybatis拦截器自动定位慢SQL并记录日志

    通过Mybatis拦截器自动定位慢SQL并记录日志

    Mybatis使用手册.pdf

    MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 MyBatis是一款开源的持久化框架,用于简化Java应用程序与数据库之间...

    Mybatis配置学习记录

    学习Mybatis时整理的重点知识记录,可以说是干货了,每一个字符都是我亲手敲出来的,欢迎下载,作为一份学习和复习参考。

    MyBatis-3.4.4使用手册.pdf

    MyBatis 是支持定制化 ...MyBatis 可以对配置和原生Map 使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。 官网:http://www.mybatis.org/mybatis-3/

    MyBatis_Generator_1.3.3

    问题#11日 - Maven插件现在记录到日志行家(感谢保罗克劳斯) 问题#4 - Generator现在将抛出一个警告,如果任何列解析为一个Java保留字 修复的错误 修正错误#648 - 使用基于构造模型时缺少进口 问题#10 - ...

    java课程设计 基于SpringBoot+mybatis的账单记录系统的设计与实现+详细文档+全部资料(优秀项目).zip

    java毕业设计 基于SpringBoot+mybatis的账单记录系统的设计与实现+详细文档+全部资料(优秀项目).zipjava毕业设计 基于SpringBoot+mybatis的账单记录系统的设计与实现+详细文档+全部资料(优秀项目).zip ...

    mybatis3.5.7.zip

    MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 压缩包内容: mybatis-3.5.7.zip mybatis-3-mybatis-3.5.7.zip ...

    MyBatis3 用户指南

    本文是《MyBatis3 用户指南》中文版,为学习...MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素、Map接口和POJOs(普通java对象)到数据库中的记录。 本文翻译的内容可任意复制、传播和使用。

    Spring Boot Mybatis使用详解含示例(值得珍藏)

    MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs (Plain Old Java Objects, 普通的 Java 对象)映射成数据库中的记录。 以下是 MyBatis 的主要特点: 简单易学:MyBatis 框架结构...

    springmybatis

    MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...

    Mybatis学习记录

    mybatis学习记录

    springBoot结合Mybatis的使用,其中包括了Mybaits的xml配置使用、Mybatis部分源码分析等内容

    SpringBoot结合Mybatis的使用Demo,项目中通过SpringBoot配置Mybaits,配置mybatis的xml文件,以及程序启动类上通过...并且对Mybatis部分源码分析记录到文件中。 通过本项目demo可以学会很多,希望资源对大家有用处!

    MyBatis学习.md

    MyBatis个人学习记录,经过一周的学习,自己把MyBatis学习完了,下一步进入Spring的学习了

    mybatis-3.5.2.pdf

    MyBatis 可以对配置和原生 Map 使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录 官方文档地址:http://www.mybatis.org/mybatis-3/zh/index.html 中文...

    Mybatis 中文文档 3.4.CHM

    MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。 帮助改进文档... 不管你以何种方式发现了文档的不足,或是丢失对某...

    mybatis缓存

    mybatis支持缓存,如果我们查找数据库中某一条记录时,先从缓存中获取,如果缓存中不存在该记录,则从数据库中获取,在放入到缓存中。该文档是关于mybatis使用一级或二级缓存的介绍

    mybatis教案.pdf

    mybatis的学习文档,MyBatis 是一款优秀的持久层框架,它支持定制...MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

Global site tag (gtag.js) - Google Analytics