Eclipse maven项目中使用mybatis逆向工程

学习ssm项目整合的童鞋,推荐一个尚硅谷的视频教程,整的很不错。如下是我的在学习mybatis逆向工程时的记录。html

使用mybatis时须要,java

1.对应数据库表字段的java实体类(也叫做bean?或者是pojo?)mysql

2.dao层的接口,有多少张表就有多少个接口,每一个接口对应一张数据表的操做,好比增删改查;通常,dao层只是写接口,不写具体的实现,具体的操做实现要么写与之对应的接口实现类,要么在mapper配置文件中实现。sql

3.mapper配置文件,在mybatis中使用的是xml文件来实现接口定义的数据库的操做;其余的也有手写接口实现类的。数据库

三个层次结构大体以下:(固然,这是已经使用mybatis generator自动生成后的目录了)apache

 

 

MyBatis Generator官方文档

 

由于是在maven项目中,因此先在pom.xml文件中引入相关的依赖,下面的配置文件中有一些多余的部分。api

 1 <project xmlns="http://maven.apache.org/POM/4.0.0"  2  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  3  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  4 <modelVersion>4.0.0</modelVersion>  5 <groupId>com.example.mbgs</groupId>  6 <artifactId>mbgenerator</artifactId>  7 <packaging>war</packaging>  8 <version>0.0.1-SNAPSHOT</version>  9 <name>mbgenerator Maven Webapp</name> 10 <url>http://maven.apache.org</url> 11 12 13 <dependencies> 14 <dependency> 15 <groupId>junit</groupId> 16 <artifactId>junit</artifactId> 17 <version>3.8.1</version> 18 <scope>test</scope> 19 </dependency> 20 21 <!-- Mybatis --> 22 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> 23 <dependency> 24 <groupId>org.mybatis</groupId> 25 <artifactId>mybatis</artifactId> 26 <version>3.4.2</version> 27 </dependency> 28 29 <!-- 数据库链接池以及驱动 --> 30 <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> 31 <dependency> 32 <groupId>com.mchange</groupId> 33 <artifactId>c3p0</artifactId> 34 <version>0.9.5.2</version> 35 </dependency> 36 37 <!-- MySql Connector --> 38 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 39 <dependency> 40 <groupId>mysql</groupId> 41 <artifactId>mysql-connector-java</artifactId> 42 <version>8.0.13</version> 43 </dependency> 44 45 <!-- JSTL 等 --> 46 <!-- https://mvnrepository.com/artifact/jstl/jstl --> 47 <dependency> 48 <groupId>jstl</groupId> 49 <artifactId>jstl</artifactId> 50 <version>1.2</version> 51 </dependency> 52 53 <!-- MBG --> 54 <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> 55 <dependency> 56 <groupId>org.mybatis.generator</groupId> 57 <artifactId>mybatis-generator-core</artifactId> 58 <version>1.3.5</version> 59 </dependency> 60 61 </dependencies> 62 63 64 <build> 65 <!-- java编译插件 --> 66 <!-- eclipse默认使用的jdk是1.5的 --> 67 <plugins> 68 <plugin> 69 <groupId>org.apache.maven.plugins</groupId> 70 <artifactId>maven-compiler-plugin</artifactId> 71 <version>3.2</version> 72 <configuration> 73 <source>1.8</source> 74 <target>1.8</target> 75 <encoding>UTF-8</encoding> 76 </configuration> 77 </plugin> 78 </plugins> 79 </build> 80 </project>
View Code

 

接着就是要写Mybatis Generator的配置文件了,在项目的直接目录下新建一个xml文件,命名无所谓,以后参考官方给出的xml配置实例来写mybatis

相关配置标签及其左右均可以在文档左侧查找,或者点击这里app

 

具体的配置以下(只是部分配置,备注有相关的说明)dom

mbg.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> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- 配置生成的实体类的注释问题,设置为true不生成 ,若是不设置的话会默认生成不少的注释--> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 配置链接数据库,注意下面的driverClass,不一样版本的数据库驱动不一样的 --> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/ssm_curd" userId="root" password="root"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 指定javabean的生成位置 --> <javaModelGenerator targetPackage="com.example.curd.bean" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 指定sql映射文件的生成位置 --> <sqlMapGenerator targetPackage="mapper" targetProject=".\src\main\resources"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 指定dao接口生成的位置,mapper接口,targetPackage是预生成的包,targetProject是目录 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.curd.dao" targetProject=".\src\main\java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- table指定每一个表的生成策略 ,后面的domainObjectName是前面的tableName表要生成的javaBean的名字--> <table tableName="tbl_emp" domainObjectName="Employee"> </table> <table tableName="tbl_dept" domainObjectName="Department"> </table> </context> </generatorConfiguration>
View Code

 

大概的配置已经差很少了,那么要怎样运行生成呢?官方给出的有几种方法:Running MyBatis Generator ,

此处使用的是java program 和xml的方法

新建一个java类,内容以下:

package com.example.curd.test; import java.io.File; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.internal.DefaultShellCallback; public class MBGTest { public static void main(String[] args) throws Exception { List<String> warnings = new ArrayList<String>(); boolean overwrite = true; File configFile = new File("mbg.xml"); //你的mybatis generator 配置文件名 ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }

 

写完后run as java application就能够了,若是成功的话,控制台是看不到输出信息的,接着刷新一下项目,就能够看到自动生成的内容了。

 

至于生成的各个文件及其做用请看MyBatis的Mapper接口以及Example的实例函数及详解

相关文章
相关标签/搜索