一. xml中的jdbcType的作用
1. mybatis中 jdbcType 时间类型
当jdbcType = DATE 时, 只传入了 年月日
jdbcType = TIMESTAMP , 年月日+ 时分秒
2. jdbcType 是否必须:
使用时, 没有加jdbcType 正常,
加上jdbcType原因(网络): 当传入字段值为null,时,需要加入. 否则报错.
是因为你传入的参数的字段为null对象无法获取对应的jdbcType类型,而报的错误。
你只要在insert语句中insert的对象加上jdbcType就可以了,修改如下:
#{menuTitle,jdbcType=VARCHAR}
这样就可以解决以上错误了。
二.MyBatis配置映射注意事项!
- <!-- 扫描mybatis映射接口类 -->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="com.test.dsm"/>
- <property name="sqlSessionFactoryBeanName" value="lazySqlSessionFactory"/>
- </bean>
这个配置的前提条件是:映射接口类文件(.java)和映射XML文件(.xml)需要放在相同的包下(com.test.dsm
如果myBatis映射XML文件和映射接口文件不放在同一个包下怎么办呢?
如果在不同的包下,那就需要手动配置XML文件的路径了,只需要修改SqlSessionFactoryBean配置即可:
- <bean id="lazySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="dataSource"/>
- <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
- <!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。
- *是个通配符,代表所有的文件,**代表所有目录下 -->
- <property name="mapperLocations" value="classpath:com/test/mapper/mysql/**/*.xml" />
- </bean>
添加一个mapperLocations属性,指定加载xml文件的路径。
classpath:表示在classes目录中查找;
*:通配符表示所有文件;
**:表示所有目录下;
三. 数据库带下划线的列名转驼峰属性名
mybatis-config.xml:
- <configuration>
- <settings>
- <setting name="mapUnderscoreToCamelCase" value="true" />
- </settings>
- <!-- 1.为实体类,设置简称 (设置别名) -->
<typeAliases>
<package name="com.test.model"/>
</typeAliases> - </configuration>
数据库字段:
is_man
bean:
private Integer isMan;
mapper配置不需要写字段与属性的配置,会自动映射。
要真正存在一个与它对应的驼峰Bean(实体类)与它对应才生效,resultType="bean"