SpringBoot下实现mybatis代码自动生成
SpringBoot下实现mybatis代码自动生成 一、环境准备,spring boot web工程,Eclipse开发工具,数据库等。1、创建一个spring boot工程2、创建一个数据库和对应的表二、配置文件,生成代码。1、修改pom.xml文件,添加mybatis,mybatis-generator,druid,mysql等依赖具体代码如下: 代码...
SpringBoot下实现mybatis代码自动生成
一、环境准备,spring boot web工程,Eclipse开发工具,数据库等。
1、创建一个spring boot工程
2、创建一个数据库和对应的表
二、配置文件,生成代码。
1、修改pom.xml文件,添加mybatis,mybatis-generator,druid,mysql等依赖
具体代码如下: 代码里面有配置参数的详细解释,就不在累赘叙述一遍了。
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ai</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository。需要修改1.5.4版本为1.5.2不然添加下面的依赖的时候pom.xml文件报错 -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--mybatis的依赖。匹配spring Boot1.5 or higher-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<!-- 分页插件的依赖,是别人写的一个插件,如果使用limit原始分页方式可以不加这个 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.0</version>
</dependency>
<!-- mysql的jdbc连接依赖 ,如果使用的是oracle请修改为oracle的jdbcjar依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 阿里的druid依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.19</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- 下面的plugin配置是给mybatis自动生成代码用的,可以直接在eclipse里面直接生成代码,
或者使用mybatis-generator工具的命令行也可以生成,具体使用方法请百度一下 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<phase>package</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!--允许移动生成的文件 -->
<verbose>true</verbose>
<!-- 是否覆盖 -->
<overwrite>true</overwrite>
<!-- 自动生成的配置 -->
<!-- <configurationFile>
src/main/resources/mybatis-generator/generatorConfig-learn.xml
</configurationFile> -->
<!-- 多数据源需要配置多个,方便生成代码的时候使用,该配置文件一个数据源一个,切换配置文件就可以生成对应的数据源的代码了 -->
<configurationFile>
src/main/resources/mybatis-generator/generatorConfig-student.xml
</configurationFile>
</configuration>
</plugin>
</plugins>
<!-- 下面的rerource配置是为了让变异工程的时候把resource目录下的一些配置文件编译到变异目录下,不配置变异xml文件不好使 -->
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>
2、创建并编写mybatis自动生成代码配置文件,并生成对应的dao,model,mapper代码。
该配置文件需要创建一个,目录就是上面pom.xml文件里面写的那个路径src/main/resources/mybatis-generator/generatorConfig-learn.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>
<!-- jdbc连接的mysql或者oracle的连接包jar,最好是配置为绝对路径 -->
<classPathEntry
location="C:/Users/jiuqu/.m2/repository/mysql/mysql-connector-java/5.1.41/mysql-connector-java-5.1.41.jar"/>
<context id="my" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="false"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 配置数据源信息,多数据源需要配置多份文件,对应需要修改数据源信息,可以使不同主机的数据库,也可以是同一数据库服务器上的不同数据库名 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://10.1.45.253/learn" userId="dev-bj" password="123456">
</jdbcConnection>
<!-- 配置生成的model对象也就是javabean,对应数据库表属性的javabean生成到的包路径和绝对代码路径,只需要配置到工程的/src/main/java就可以了,具体的路径由包路径指定。
由于多数据源,所以我在model后面加了一层以示区分不同数据源的信息 -->
<javaModelGenerator targetPackage="com.ai.demos.model.learn"
targetProject="C:/myDir/WorkSpace/EclipseWorkSpace/demo/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- mapper文件生成路劲和包名 -->
<sqlMapGenerator targetPackage="com.ai.demos.mapper.learn"
targetProject="C:/myDir/WorkSpace/EclipseWorkSpace/demo/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- dao层接口文件 -->
<javaClientGenerator targetPackage="com.ai.demos.dao.learn"
targetProject="C:/myDir/WorkSpace/EclipseWorkSpace/demo/src/main/java" type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 数据库里面的表名信息和配置,多张表需要配置多条信息 -->
<table tableName="learn_resource" domainObjectName="LearnResource"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
<!-- <table tableName="student" domainObjectName="Student"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
<table tableName="course" domainObjectName="Course"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
<table tableName="score" domainObjectName="Score"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
<table tableName="teacher" domainObjectName="Teacher"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
-->
</context>
</generatorConfiguration>
3、当上面的一切配置完成之后,右键工程的pom.xml文件。
可选步骤:
(先执行run as下的 maven install,然后执行maven clean。当maven clean成功之后,表示编译完成。)
必须步骤:
(1)、执行run as 下面的maven build,在弹出来的对话框的Goals输入框里面输入mybatis-generator:generate,然后点击Run运行。
(2)、执行完第一个步骤之后其实代码已经生成了,但是你会发现工程里面看不见代码。这时还需要执行Run as下面的maven generate-source,神奇的代码出现了。
对于自动生成的代码,我们需要在所有的dao文件的类上面加一个@Mapper注解,不然没法自动注入;
还需要把mapper文件移动到resource目录下,创建一个mapper/xxxx/*.xml其中xxxx表示数据源名称,这样可以区分不同数据源的mapper文件,方便映射管理。
到此,mybatis的代码自动生成就完毕了,开始编写我们的业务代码吧。
由于博客没法贴太多代码,我把这个工程的源代码放到了下载资源里面,想参考源代码的同学直接下载即可
百度网盘分享地址如下
链接:http://pan.baidu.com/s/1jIQfVsa 密码:odz9
csdn下载资源连接如下
http://download.csdn.net/detail/tianhouquan/9881563
github资源地址为:
https://github.com/jiuquguiyu/demos
更多推荐
所有评论(0)