1. 首页
  2. mybatis学习总结

MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合

一、搭建开发环境

1.1、使用Maven创建Web项目

执行如下命令:

mvn archetype:create -DgroupId=me.gacl -DartifactId=spring4-mybatis3 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

如下图所示:
mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_1.png

创建好的项目如下:

mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_2.png

编辑pom.xml文件

 <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 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>me.gacl</groupId>
   <artifactId>spring4-mybatis3</artifactId>
   <packaging>war</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>spring4-mybatis3 Maven Webapp</name>
   <url>http://maven.apache.org</url>
   <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.1</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
   <build>
     <finalName>spring4-mybatis3</finalName>
   </build>
 </project>

修改 <name>spring4-mybatis3 Maven Webapp</name> 部分,把" Maven Webapp"这部分包含空格的内容去掉,否则Maven在编译项目时会因为空格的原因导致一些莫名其妙的错误出现,修改成: <name>spring4-mybatis3</name> 。

另外,把以下内容删掉:

 <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.1</version>
       <scope>test</scope>
 </dependency>

这部分是junit的jar包依赖信息,这个版本太低了,我们不使用这个Junit测试版本,修改过后的pom.xml内容如下:

 <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 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>me.gacl</groupId>
   <artifactId>spring4-mybatis3</artifactId>
   <packaging>war</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>spring4-mybatis3</name>
   <url>http://maven.apache.org</url>
   <dependencies>

   </dependencies>
   <build>
     <finalName>spring4-mybatis3</finalName>
   </build>
 </project>

1.2、将创建好的项目导入MyEclipse中

具体操作步骤如下图所示:

mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_3.png

mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_4.png

mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_5.png

mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_6.png

mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_7.png

手动创建【src/main/java】、【src/test/resources】、【src/test/java】这三个source folder,如下图所示:

mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_8.png

到此,项目搭建的工作就算是全部完成了。

二、创建数据库和表(针对MySQL)

SQL脚本如下:

Create DATABASE spring4_mybatis3;
USE spring4_mybatis3;

DROP TABLE IF EXISTS t_user;
CREATE TABLE t_user (
user_id char(32) NOT NULL,
user_name varchar(30) DEFAULT NULL,
user_birthday date DEFAULT NULL,
user_salary double DEFAULT NULL,
PRIMARY KEY (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

创建好的数据库和表如下:

mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_9.png

三、使用generator工具生成代码

在网上找到了一个generator工具可以根据创建好的数据库表生成MyBatis的表对应的实体类,SQL映射文件和dao,找到generator工具根目录下的generator.xml文件,这个文件是用来配置代码生成规则的,如下图所示:

mybatisxuexizongjiebamybatis3_xyuspring4_xzhenghe_10.png

编辑generator.xml文件,内容如下:

 <?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="E:\repository\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar" />
     <!-- <classPathEntry location="C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar" />-->
     <context id="DB2Tables" targetRuntime="MyBatis3">
         <commentGenerator>
             <property name="suppressAllComments" value="true" />
         </commentGenerator>
         <!-- 数据库链接URL、用户名、密码 -->
          <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/spring4_mybatis3" userId="root" password="XDP">
         <!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@localhost:1521:orcl" userId="msa" password="msa">-->
         </jdbcConnection>
         <javaTypeResolver>
             <property name="forceBigDecimals" value="false" />
         </javaTypeResolver>
         <!-- 生成实体类的包名和位置,这里配置将生成的实体类放在me.gacl.domain这个包下 -->
         <javaModelGenerator targetPackage="me.gacl.domain" targetProject="C:\Users\gacl\spring4-mybatis3\src\main\java">
             <property name="enableSubPackages" value="true" />
             <property name="trimStrings" value="true" />
         </javaModelGenerator>
         <!-- 生成的SQL映射文件包名和位置,这里配置将生成的SQL映射文件放在me.gacl.mapping这个包下 -->
         <sqlMapGenerator targetPackage="me.gacl.mapping" ta