mybatis xml相关配置

一. xml中的jdbcType的作用

1. mybatis中 jdbcType 时间类型

当jdbcType = DATE 时, 只传入了 年月日

jdbcType = TIMESTAMP ,  年月日+ 时分秒

 

2. jdbcType 是否必须:

使用时, 没有加jdbcType 正常, 

mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换, 

加上jdbcType原因(网络): 当传入字段值为null,时,需要加入. 否则报错.


是因为你传入的参数的字段为null对象无法获取对应的jdbcType类型,而报的错误。 
你只要在insert语句中insert的对象加上jdbcType就可以了,修改如下: 
#{menuTitle,jdbcType=VARCHAR} 

这样就可以解决以上错误了。 

二.MyBatis配置映射注意事项!

  1. <!-- 扫描mybatis映射接口类 -->  
  2. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  3.     <property name="basePackage" value="com.test.dsm"/>  
  4.     <property name="sqlSessionFactoryBeanName" value="lazySqlSessionFactory"/>  
  5. </bean>  

这个配置的前提条件是:映射接口类文件(.java)和映射XML文件(.xml)需要放在相同的包下(com.test.dsm

如果myBatis映射XML文件和映射接口文件不放在同一个包下怎么办呢?

如果在不同的包下,那就需要手动配置XML文件的路径了,只需要修改SqlSessionFactoryBean配置即可:

[html]  view plain  copy
  1. <bean id="lazySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  2.     <property name="dataSource" ref="dataSource"/>  
  3.     <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>  
  4.     <!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。  
  5.          *是个通配符,代表所有的文件,**代表所有目录下 -->  
  6.     <property name="mapperLocations" value="classpath:com/test/mapper/mysql/**/*.xml" />  
  7. </bean>  

添加一个mapperLocations属性,指定加载xml文件的路径。

classpath:表示在classes目录中查找;

*:通配符表示所有文件;

**:表示所有目录下;

三. 数据库带下划线的列名转驼峰属性名

mybatis-config.xml: 

Xml代码   收藏代码
  1. <configuration>  
  2.      <settings>  
  3.           <setting name="mapUnderscoreToCamelCasevalue="true" />  
  4.      </settings>  

  5.    <!-- 1.为实体类,设置简称    (设置别名) -->
    <typeAliases>
    <package name="com.test.model"/>
    </typeAliases>
  6. </configuration>  



数据库字段: 
is_man 

bean: 
private Integer isMan; 

mapper配置不需要写字段与属性的配置,会自动映射。 

要真正存在一个与它对应的驼峰Bean(实体类)与它对应才生效,resultType="bean"



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值