qiuxuhui

导航

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

posted on 2020-12-16 20:01  qiuxuhui  阅读(125)  评论(0编辑  收藏  举报