1.相关配置
首先配置pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.app</groupId>
<artifactId>test</artifactId>
<name>FirstSpring</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>4.2.0.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
<com.fasterxml.jackson.version>2.5.0</com.fasterxml.jackson.version>
<mybatis.generator.configurationFile>src\main\resources\generatorConfig.xml
</mybatis.generator.configurationFile>
</properties>
・・・中间省略
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.0</version>
</dependency>
配置root-context.xml。也可能叫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"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
<!-- 配置数据源 -->
<bean id="basicDataSource" class="org.apache.commons.dbcp2.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}" />
<property name="maxTotal" value="${jdbc.maxTotal}" />
</bean>
<!-- 配置扫描保存SQL语句的xml文件。测试用的是放在/src/main/java/com/app/mapper/下 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="basicDataSource"/>
<property name="mapperLocations" value="classpath:com/app/mapper/*.xml"/>
</bean>
<!-- 配置扫描mapper接口类 -->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.app.mapper"/>
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="basicDataSource"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
・・・中間省略
<!-- 添加自动生成 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.0</version>
</plugin>
2.mapper自动生成
src/main/resources/下生成generatorConfig.xml文件。用于自动生成mapper。注意classPathEntry指定自己的jdbc文件。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
<classPathEntry
location="C:/Users/lulu/.m2/repository/org/postgresql/postgresql/9.4-1206-jdbc42/postgresql-9.4-1206-jdbc42.jar" />
<context id="context1">
<jdbcConnection driverClass="org.postgresql.Driver"
connectionURL="jdbc:postgresql://localhost:5432/postgres"
userId="postgres" password="admin" />
<javaModelGenerator
targetPackage="com.sec.test.entity" targetProject="src/main/java/" />
<sqlMapGenerator targetPackage="com.sec.test.mapper"
targetProject="src/main/java/" />
<javaClientGenerator
targetPackage="com.sec.test.mapper" targetProject="src/main/java/"
type="XMLMAPPER" />
<table schema="public" tableName="%" />
</context>
</generatorConfiguration>
接下来,试一下自动生成。假设数据库中添加了以下的表
CREATE TABLE users(
userid CHAR (4) NOT NULL
, password VARCHAR(16) NOT NULL
, auth VARCHAR (10) NOT NULL
, PRIMARY KEY (userId)
);
Eclipse中选择Maven Build。Goals填写mybatis-generator:generate


像下面这样显示build success就成功了

对当前工程按F5刷新文件,会发现entity下跟mapper下生成相关的mapper接口跟mapper文件。

3.测试能否使用mybatis
建一个测试用service
@Service
public class TestSqlService {
@Autowired
UsersMapper mapper;
public Users getUsers() {
return mapper.selectByPrimaryKey("0001");
}
}
跟一个测试用controller
@RestController
public class TestSqlController {
@Autowired
TestSqlService service;
@RequestMapping("testMybatis")
public Users show() {
System.out.println("test mybatis");
Users usr = service.getUsers();
System.out.println(usr);
return usr;
}
}
浏览器访问http://localhost:8080/test/testMybatis,发现控制台输出了select的结果,测试成功。

如果浏览器返回406,说明不接收json,可以添加以下依赖
<dependency> <!-- json处理jar包 -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${com.fasterxml.jackson.version}</version>
</dependency>
<dependency> <!-- json处理jar包 -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${com.fasterxml.jackson.version}</version>
</dependency>
<dependency> <!-- json处理jar包 -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${com.fasterxml.jackson.version}</version>
</dependency>