首先是須要引用的包java
<properties> <spring.version>4.2.6.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</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-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</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-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.0</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.13</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.0</version> </dependency> </dependencies>
接下來是Spring的配置文件mysql
1 <beans xmlns="http://www.springframework.org/schema/beans" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns:tx="http://www.springframework.org/schema/tx" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 7 http://www.springframework.org/schema/tx 8 http://www.springframework.org/schema/tx/spring-tx-3.2.xsd 9 http://www.springframework.org/schema/context 10 http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 11 <bean id="settings" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 12 <property name="location"><value>mybatis-database.properties</value></property> 13 </bean> 14 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 15 <property name="driverClassName" value="${driver}"/> 16 <property name="url" value="${url}"/> 17 <property name="username" value="${username}"/> 18 <property name="password" value="${password}"/> 19 </bean> 20 <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 21 <property name="dataSource" ref="dataSource"/> 22 </bean> 23 <tx:annotation-driven transaction-manager="txManager"/> 24 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 25 <property name="dataSource" ref="dataSource" /> 26 <!-- 引用MyBatis配置文件中的配置 --> 27 <property name="configLocation" value="classpath:mybatis-config.xml" /> 28 <!-- 配置SQL映射文件信息 --> 29 <property name="mapperLocations"> 30 <list> 31 <value>classpath:com/test/dao/**/*.xml</value> 32 </list> 33 </property> 34 </bean> 35 <!-- 配置DAO --> 36 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 37 <property name="basePackage" value="com.test.dao" /> 38 </bean> 39 <!-- 配置業務Bean --> 40 <context:component-scan base-package="com.test.server" /> 41 </beans>
其中所須要的 mybatis-database.properties 文件中包含的是數據庫鏈接相關的參數web
url=MySQLUrl driver=com.mysql.cj.jdbc.Driver username=root password=123456
固然也能夠將值直接寫入到Spring配置文件中spring
而後就是MyBatis的配置文件,內容保持默認既可,不須要再額外增長配置了sql
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- Globally enables or disables any caches configured in any mapper under this configuration --> <setting name="cacheEnabled" value="false"/> <!-- Sets the number of seconds the driver will wait for a response from the database --> <setting name="defaultStatementTimeout" value="5"/> <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn --> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- Allows JDBC support for generated keys. A compatible driver is required. This setting forces generated keys to be used if set to true, as some drivers deny compatibility but still work --> <setting name="useGeneratedKeys" value="true"/> </settings> </configuration>
而後定義MyBatis的Mapper接口和xml數據庫腳本配置文件,這裏和標準的MyBatis的方式同樣,就不贅述了。數據庫
接下來是定義Service接口與其實現類,如testService與testServiceImplapache
public interface TestServer { List<Man> selectList(); }
@Transactional @Service("TestServer") public class TestServerImpl implements com.test.server.TestServer { @Autowired private ManMapper manMapper; @Transactional(propagation = Propagation.SUPPORTS) @Override public List<Man> selectList() { return manMapper.selectList(); } }
這裏須要注意的是首先必要的兩個屬性,@Service是用來註冊Spring Bean的,@Autowried是用來作Mapper的自動映射與裝配的mybatis
接下來就能夠實際調用Service了app
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-mybatis.xml"); TestServer server = (TestServer)ctx.getBean("TestServer"); List<Man> result = server.selectList();