您的位置:首页 > 编程语言 > Java开发

Spring 与 MyBatis 集成步骤

2015-07-25 22:50 459 查看
我们这里以 dbcp 数据源为例。

1、引入相关的 jar 包坐标依赖

[code]        <!-- 引入 Spring 的坐标依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- dbcp 数据源 -->
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.2.3</version>
        </dependency>


2、编写 Spring4 的核心配置文件

配置文件参考片段:

[code]<?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-4.1.xsd         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">

    <context:property-placeholder location="classpath:datasource.properties" />

    <!-- 第 1 步:配置数据源 -->
    <!--本示例采用 DBCP 连接池,应预先把 DBCP 的 jar 包复制到工程的 lib 目录下。 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <!-- 查这里配置的意思 -->
        <!-- MaxActive,连接池的最大数据库连接数。设为0表示无限制。 -->
        <property name="maxActive" value="10"></property>
        <!-- maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为 0 表示无限制。 -->
        <property name="maxIdle" value="10"></property>
        <!-- 查这里配置的意思 -->
    </bean>

    <!-- 第 2 步:SqlSessionFactoryBean (这里须要 MyBatis 与 Spring 整合的 jar 包) -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- dataSource 属性指定要用到的连接池 -->
        <property name="dataSource" ref="dataSource" />
        <!-- configLocation 属性指定 mybatis 的核心配置文件 -->
        <property name="configLocation" value="classpath:config.xml" />
    </bean>

    <!-- 第 3 步:注册接口 -->
    <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
        <property name="mapperInterface" value="com.liwei.mybatis.mapper.IUserOper"></property>
    </bean>

</beans>


3、编写测试代码

[code]private ApplicationContext ctx;
    @Before
    public void before(){
        ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    }

    @Test
    public void test01(){

        DataSource dataSource = (DataSource) ctx.getBean("dataSource");
        System.out.println(dataSource);
    }
    @Test
    public void test02(){
        IUserOper userDao = (IUserOper)ctx.getBean("userMapper");
        List<Article> articles = userDao.getUserArticles(1);
        for(Article a : articles){
            System.out.println(a);
        }
    }


补充:数据库连接的配置文件。

[code]# 说明:如果这里直接写 username , MyBatis 会使用系统的 username 值注入进入,就会出现莫名其妙的情况了。
jdbc.driverClassName = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://127.0.0.1:3306/mybatisinaction?characterEncoding=utf8
jdbc.username = root
jdbc.password = 123456


补充:在我们使用 maven 的过程中,如果发现默认的中央仓库比较慢,可以配置一下镜像,参考的镜像为:

[code]<mirror>
      <id>UK</id>
      <name>UK Central</name>
      <url>http://uk.maven.org/maven2</url>
      <mirrorOf>central</mirrorOf>
    </mirror>


[code]<build>
        <defaultGoal>compile</defaultGoal>
        <plugins>
            <!-- 编译的时候使用JDK7和UTF8编码 -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: