编写配置文件
在Eclipse中,创建一个名称为chapter10的Web项目,将上一小节中所准备的全部JAR包添加到项目的lib目录中,并发布到类路径下。
在项目的src目录下,分别创建db.properties文件、Spring的配置文件,以及MyBatis的配置文件,如文件1、文件2和文件3所示。
文件1 db.properties
1 jdbc.driver=com.mysql.jdbc.Driver
2 jdbc.url=jdbc:mysql://localhost:3306/mybatis
3 jdbc.username=root
4 jdbc.password=root
5 jdbc.maxTotal=30
6 jdbc.maxIdle=10
7 jdbc.initialSize=5
在文件1中,除配置了连接数据库的基本4项外,还配置了数据库连接池的最大连接数(maxTotal)、最大空闲连接数(maxIdle),以及初始化连接数(initialSize)。
文件2 applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:aop="http://www.springframework.org/schema/aop"
5 xmlns:tx="http://www.springframework.org/schema/tx"
6 xmlns:context="http://www.springframework.org/schema/context"
7 xsi:schemaLocation="http://www.springframework.org/schema/beans
8 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
9 http://www.springframework.org/schema/tx
10 http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
11 http://www.springframework.org/schema/context
12 http://www.springframework.org/schema/context/spring-context-4.3.xsd
13 http://www.springframework.org/schema/aop
14 http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
15 <!--读取db.properties -->
16 <context:property-placeholder location="classpath:db.properties"/>
17 <!-- 配置数据源 -->
18 <bean id="dataSource"
19 class="org.apache.commons.dbcp2.BasicDataSource">
20 <!--数据库驱动 -->
21 <property name="driverClassName" value="${jdbc.driver}" />
22 <!--连接数据库的url -->
23 <property name="url" value="${jdbc.url}" />
24 <!--连接数据库的用户名 -->
25 <property name="username" value="${jdbc.username}" />
26 <!--连接数据库的密码 -->
27 <property name="password" value="${jdbc.password}" />
28 <!--最大连接数 -->
29 <property name="maxTotal" value="${jdbc.maxTotal}" />
30 <!--最大空闲连接 -->
31 <property name="maxIdle" value="${jdbc.maxIdle}" />
32 <!--初始化连接数 -->
33 <property name="initialSize" value="${jdbc.initialSize}" />
34 </bean>
35 <!-- 事务管理器,依赖于数据源 -->
36 <bean id="transactionManager" class=
37 "org.springframework.jdbc.datasource.DataSourceTransactionManager">
38 <property name="dataSource" ref="dataSource" />
39 </bean>
40 <!--开启事务注解 -->
41 <tx:annotation-driven transaction-manager="transactionManager"/>
42 <!--配置MyBatis工厂 -->
43 <bean id="sqlSessionFactory"
44 class="org.mybatis.spring.SqlSessionFactoryBean">
45 <!--注入数据源 -->
46 <property name="dataSource" ref="dataSource" />
47 <!--指定核心配置文件位置 -->
48 <property name="configLocation" value="classpath:mybatis-config.xml"/>
49 </bean>
50 </beans>
在文件2中,首先定义了读取properties文件的配置,然后配置了数据源,接下来配置了事务管理器并开启了事务注解,最后配置了MyBatis工厂来与Spring整合。其中,MyBatis工厂的作用就是构建SqlSessionFactory,它是通过mybatis-spring包中提供的org.mybatis.spring.SqlSessionFactoryBean类来配置的。通常,在配置时需要提供两个参数:一个是数据源,另一个是MyBatis的配置文件路径。这样Spring的IoC容器就会在初始化id为sqlSessionFactory的Bean时解析MyBatis的配置文件,并与数据源一同保存到Spring 的Bean中。
文件3 mybatis-config.xml
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
3 "http://mybatis.org/dtd/mybatis-3-config.dtd">
4 <configuration>
5 <!--配置别名 -->
6 <typeAliases>
7 <package name="com.itheima.po" />
8 </typeAliases>
9 <!--配置Mapper的位置 -->
10 <mappers>
11 ...
12 </mappers>
13 </configuration>
由于在Spring中已经配置了数据源信息,所以在MyBatis的配置文件中就不再需要配置数据源信息。这里只需要使用<typeAliases>和<mappers>元素来配置文件别名以及指定Mapper文件位置即可。
此外,还需在项目的src目录下创建log4j.properties文件,该文件的编写可参考“初识MyBatis”一章的入门案例,也可将前面章节所创建的该文件复制到此项目中使用。