主要用的包:mybatis-3.1.1 spring3 mybatis-spring-1.1.1 以及基本包等。
遇到的几个问题罗列如下,以备忘。
1、命名规则问题:这也是自己看外国的一些技术网站看到的,很是郁闷,过去ibatis对这方面要求不是很严格,新版本对此还是比较严格的。首先来看几个配置文件
(1)spring 主配置文件:
<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation">
<value>classpath:sqlconfig.xml</value>
</property>
<property name="mapperLocations" value="classpath*:com.mapper/*.xml"></property>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource"><ref local="dataSource"/></property>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"></constructor-arg>
<constructor-arg index="1" value="BATCH"></constructor-arg>
</bean>
<bean id="userMaper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.mapper.UserMaper"></property>
<property name="sqlSessionTemplate" ref="sqlSession"></property>
</bean>
<bean id="userServiceimp" class="com.service.UserServiceimp">
<property name="userMaper" ref="userMaper"></property>
</bean>
这一行中的userMaper所定义的mapperInterface 是mybatis新加入的吧,看了一些文章对他的解释是映射器。
(2)UserMaper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UserMaper">
<resultMap type="hashmap" id="user_resultmap">
<result column="sys_now" property="sys_now" />
</resultMap>
<select id="selectUser" parameterType="string" resultMap="user_resultmap">
select sysdate() as sys_now
</select>
</mapper>
(3)UserMaper .java
package com.mapper;
import java.util.HashMap;
public interface UserMaper {
public HashMap selectUser(String id);
}
这里要做到maper与xml中的namespace要统一,包括xml的名字都需要统一,否则会一直找不到这个xml非常的郁闷。
2、包的问题
原来的1.0.0的mybatis-spring 总是提示无法打开session后来升级到最新的包确实解决了。