原文:http://zhaoruiqing.iteye.com/blog/1503344
主要用的包: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>
- <span style="color: #ff0000;"><bean id="userMaper" class="org.mybatis.spring.mapper.MapperFactoryBean">
- <property name="mapperInterface" value="com.mapper.UserMaper"></property>
- <property name="sqlSessionTemplate" ref="sqlSession"></property>
- </bean></span>
- <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 <span style="color: #ff0000;">namespace="com.mapper.UserMaper"></span>
- <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后来升级到最新的包确实解决了。