zoukankan      html  css  js  c++  java
  • Spring和MyBatis整合

    前言:在前面一篇文章中,介绍了单独使用MyBatis连接orace的例子,在这里分享学习下Spring和MyBatis是如何整合的,以具体工程为例子

    阅读目录:

    • 1.环境准备
    • 2.搭建工程
      • 2.1.applicationContext.xml
      • 2.2.userMapper.xml
      • 2.3.测试类

    MyBatis和Spring整合的官方地址,http://www.mybatis.org/spring/zh/index.html

    1.环境准备

       所需环境  Eclipse+maven

       所需jar包    mybatis-3.4.5.jar

                          spring-context-4.3.1.RELEASE.jar spring相关jar包

                         mybatis-spring-1.3.1.jar

    2.搭建工程

    工程结构如下图所示

    2.1 spring框架的配置文件applicationContext.xml

       

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="  
           http://www.springframework.org/schema/beans  
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context 
           http://www.springframework.org/schema/context/spring-context.xsd">
    
        <!--1 引入属性文件,在配置中占位使用 -->
        <context:property-placeholder location="classpath:db.properties" />
    
        <bean id="dataSource"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="${driver}" />
            <property name="url" value="${url}" />
            <property name="username" value="otatransuser" />
            <property name="password" value="${password}" />
        </bean>
    
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <!-- sql映射文件路径 -->
              <property name="mapperLocations" value="classpath:mapper/*.xml"></property>  
        </bean>
        
        <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
            <property name="mapperInterface" value="com.ota.mapper.UserMapper" />
            <property name="sqlSessionFactory" ref="sqlSessionFactory" />
        </bean>
        
        <!--5 声明式事务管理 -->
        <!--定义事物管理器,由spring管理事务 -->
        <bean id="transactionManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
    
    </beans>

    db.properties文件放在类路径下,内容为:

    driver=oracle.jdbc.driver.OracleDriver
    url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.221.129.208)(PORT=1523))(CONNECT_DATA=(SERVICE_NAME=otatransuser)))
    username=otatransuser
    password=otatransuser123

    要注意:(1)sqlSessionFactory的属性dataSource是必输项,用来指定数据源

                       sqlSessionFactory的属性configLocation,是用来指定 MyBatis 的 XML 配置文件路径的。这个属性是可选项

                      sqlSessionFactory的属性mapperLocations 属性使用一个资源位置的 list。 这个属性可以用来指定 MyBatis 的 XML 映射器文件的位置。比如:

    <property name="mapperLocations" value="classpath*:sample/config/mappers/**/*.xml" />表示这会从类路径下加载在 sample.config.mappers 包和它的子包中所有的 MyBatis 映射器 XML 文件。

                 (2)使用MapperFactoryBean把映射器接口userMapper加入到spring中,如果你有多个映射器接口,需要一一的注入到spring。

                          其实没有必要在spring的xml文件中注册所有的映射器,可以采用这样一种方法,

    你可以使用一个 MapperScannerConfigurer , 它 将 会 查 找 类 路 径 下 的 映 射 器 并 自 动 将 它 们 创 建 成 MapperFactoryBean。

    要创建 MapperScannerConfigurer,可以在 Spring 的配置中添加如下代码:

    <!-- 指定要自动扫描接口的基础包,实现接口 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.ota.mapper" />
        </bean>

    注 意 , 没 有 必 要 去 指 定 SqlSessionFactory 或 SqlSessionTemplate , 因 为 MapperScannerConfigurer 将会创建 MapperFactoryBean,之后自动装配

    2.2 userMapper.xml文件

    userMapper.xml映射器内容如下,user还有userMapper这里也不再一一详细介绍,在前面一篇mybatis入门中有提到

    <mapper namespace="com.ota.mapper.UserMapper">
      <select id="findUserByName" parameterType="java.lang.String" resultType="com.ota.pojo.User">
       select * from ota_user where username=#{username}
      </select>
    </mapper>

    2.3测试类

    public class MybatisTest {
    
        public static void main(String[] args) throws Exception {
            ApplicationContext ctx = null;
            ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
            UserMapper userMapper = (UserMapper) ctx.getBean("userMapper");
            User user = userMapper.findUserByName("wanghaixia");
            System.out.println(user);
        }

    运行OK

               

  • 相关阅读:
    java_oop_方法2
    POJ 3276 Face The Right Way(反转)
    POJ 3276 Face The Right Way(反转)
    POJ 2566 Bound Found(尺取法,前缀和)
    POJ 2566 Bound Found(尺取法,前缀和)
    POJ 3320 Jessica's Reading Problem(尺取法)
    POJ 3320 Jessica's Reading Problem(尺取法)
    POJ 3061 Subsequence(尺取法)
    POJ 3061 Subsequence(尺取法)
    HDU 1222 Wolf and Rabbit(欧几里得)
  • 原文地址:https://www.cnblogs.com/whx7762/p/7699092.html
Copyright © 2011-2022 走看看