首先是需要引用的包
<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的配置文件
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 文件中包含的是数据库连接相关的参数
url=MySQLUrl driver=com.mysql.cj.jdbc.Driver username=root password=123456
当然也可以将值直接写入到Spring配置文件中
然后就是MyBatis的配置文件,内容保持默认既可,不需要再额外增加配置了
<?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与testServiceImpl
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的自动映射与装配的
接下来就可以实际调用Service了
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-mybatis.xml"); TestServer server = (TestServer)ctx.getBean("TestServer"); List<Man> result = server.selectList();