Spring IOC实战
使用MyBatis时,需要创建对象都交给spring ioc容器创建
spring集成MyBatis官方文档: http://mybatis.org/spring/zh/factorybean.html
1)sqlSessionFactory
2)sqlSession
3)UserMapper
第1步:导入mybatis包 + mysql驱动包+ mybatis-spring集成的包 + spring对jdbc/orm支持的包+其他包(log4j)
[注意] mybatis-spring的版本必须与Mybatis的版本要匹配,否则报错
MyBatis-Spring MyBatis Spring Framework Spring Batch Java
2.0 3.5+ 5.0+ 4.0+ Java 8+
1.3 3.4+ 3.2.2+ 2.1+ Java 6+
第2步:beans-datasource.xml(mybatis-config.xml XXXMapper.xml)
1) 加载数据的配置信息
<context:property-placeholder location="database.properties"/>
2)数据源(连接池)bean
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </bean>
3) SqlSessionFactoryBean
1)数据源 【必须】
2)mapper映射文件的位置 【必须】
3)别名 【选配】
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 别名 --> <!--<property name="typeAliasesPackage" value="com.cc.model"></property>--> <!-- mapper XML映射 --> <property name="mapperLocations" value="classpath*:mapper/*Mapper.xml"></property> <!-- 数据源 --> <property name="dataSource" ref="dataSource"></property> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.cc.mapper"></property> </bean>
4) 事务 DataSourceTransactionManager 【必配】
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean>
第3步:编写单元测试
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:spring-datasource.xml") public class TestMyBatis { @Autowired UserMapper userMapper; @Test public void testUser() { List<User> users = userMapper.selectByExample(null); System.out.println("users==>"+users); } }
【注意】
1、spring-database.xml中的${username}默认获取的是win操作系统的用户名
故:datasource.properties文件 username=xxx 改为userName=xxxx
2、spring集成mybait的包的版本问题
mybatis-spring-1.2.2只能集成mybatis 3.2 版本 不能继承最新的 3.5.5
需要maven仓库获取mybatis-spring-2.x的版本的jar