使用MyBatis Generator自动生成实体、mapper和dao层

  通过MyBatis Generator可以自动生成实体、mapper和dao层,记录一下怎么用的。

主要步骤:  

  关于mybatis从数据库反向生成实体、DAO、mapper:
  参考文章:http://www.cnblogs.com/wangkeai/p/6934683.html
第一种方式:main方法运行(推荐)
  1.在pom.xml中加入插件依赖:
  2.写mbgConfiguration.xml文件,jdbc.properties文件
  3.写/SSM/src/main/java/main/GenMain.java main方法
  4.运行main函数,刷新

具体步骤:

  1.在pom.xml中加入插件依赖(需要mybatis的包和反向生成的包):

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency>    <groupId>org.mybatis</groupId>    <artifactId>mybatis</artifactId>    <version>3.4.4</version></dependency><!-- mybatis-generator-core 反向生成java代码--><dependency>    <groupId>org.mybatis.generator</groupId>    <artifactId>mybatis-generator-core</artifactId>    <version>1.3.5</version></dependency>

  2、写mbgConfiguration.xml文件,jdbc.properties文件

  mbgConfiguration.xml:里面的一些配置也是“因人而异”哦,需要适当修改。文件最后<table></table>就是对数据库中的表作的对应,具体可以看篇头的推荐文章或自己百度。

<?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">    <!-- 第一种mybatis逆向生成xml配置 --><generatorConfiguration>        <properties resource="jdbc.properties" />        <context id="sqlserverTables" targetRuntime="MyBatis3">            <!-- 生成的pojo,将implements Serializable-->            <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>            <commentGenerator>                <!-- 是否去除自动生成的注释 true:是 : false:否 -->                <property name="suppressAllComments" value="true" />            </commentGenerator>                <!-- 数据库链接URL、用户名、密码 -->            <jdbcConnection driverClass="${jdbc.driver}"                            connectionURL="${jdbc.url}"                            userId="${jdbc.username}"                            password="${jdbc.password}">            </jdbcConnection>                <!--              默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer                true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal              -->            <javaTypeResolver>                <property name="forceBigDecimals" value="false" />            </javaTypeResolver>                <!--             生成model模型,对应的包路径,以及文件存放路径(targetProject),targetProject可以指定具体的路径,如./src/main/java,            也可以使用“MAVEN”来自动生成,这样生成的代码会在target/generatord-source目录下            -->            <!--<javaModelGenerator targetPackage="com.joey.mybaties.test.pojo" targetProject="MAVEN">-->            <javaModelGenerator targetPackage="com.yyc.entity" targetProject="./src/main/java">                <property name="enableSubPackages" value="true"/>                <!-- 从数据库返回的值被清理前后的空格  -->                <property name="trimStrings" value="true" />            </javaModelGenerator>                <!--对应的mapper.xml文件  -->            <sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources">                <property name="enableSubPackages" value="true"/>            </sqlMapGenerator>                <!-- 对应的Mapper接口类文件 -->            <javaClientGenerator type="XMLMAPPER" targetPackage="com.yyc.dao" targetProject="./src/main/java">                <property name="enableSubPackages" value="true"/>            </javaClientGenerator>                    <!-- 列出要生成代码的所有表,这里配置的是不生成Example文件 -->            <table tableName="user_t" domainObjectName="UserInfo"                   enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"                   enableSelectByExample="false" selectByExampleQueryId="false" >                <property name="useActualColumnNames" value="false"/>            </table>        </context>    </generatorConfiguration>

  由于上面的文件中使用了数据库连接,所以还别忘了数据库的包(相信在准备好学习mybatis前,已经在pom.xml文件中准备好了这些相关依赖)

  jdbc.properties: 

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8jdbc.username=rootjdbc.password=123#定义初始连接数  initialSize=0  #定义最大连接数  maxActive=20  #定义最大空闲  maxIdle=20  #定义最小空闲  minIdle=1  #定义最长等待时间  maxWait=60000 

  3.写GenMain.java main方法

/** *  */package main;import java.io.File;import java.io.IOException;import java.sql.SQLException;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.exception.InvalidConfigurationException;import org.mybatis.generator.exception.XMLParserException;import org.mybatis.generator.internal.DefaultShellCallback;/*************************************** @author E-mail:[email protected]* @version 创建时间:2017年6月23日 下午9:18:19* 类说明:*     mybatis逆向工程main函数****************************************/public class GenMain {    public static void main(String[] args) {          List<String> warnings = new ArrayList<String>();          boolean overwrite = true;     //如果这里出现空指针,直接写绝对路径即可。        String genCfg = "/mbgConfiguration.xml";          File configFile = new File(GenMain.class.getResource(genCfg).getFile());          ConfigurationParser cp = new ConfigurationParser(warnings);          Configuration config = null;          try {              config = cp.parseConfiguration(configFile);          } catch (IOException e) {              e.printStackTrace();          } catch (XMLParserException e) {              e.printStackTrace();          }          DefaultShellCallback callback = new DefaultShellCallback(overwrite);          MyBatisGenerator myBatisGenerator = null;          try {              myBatisGenerator = new MyBatisGenerator(config, callback, warnings);          } catch (InvalidConfigurationException e) {              e.printStackTrace();          }          try {              myBatisGenerator.generate(null);          } catch (SQLException e) {              e.printStackTrace();          } catch (IOException e) {              e.printStackTrace();          } catch (InterruptedException e) {              e.printStackTrace();          }      }}

  4、运行Main方法,刷新项目,就会在上面mbgConfiguration.xml中配置的对应文件的目录下生成实体,mapper,dao了。

第二种方式:maven插件运行

  1.pom.xml配置插件

  2.写generatorConfig.xml文件

  3.运行

具体步骤:  

  1.pom.xml配置插件build节点下加入插件:也就是maven一般加入tomcat插件的地方。

<!-- 第二种方式数据库反向生成java --><plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin>

  2.写generatorConfig.xml文件,与mbgConfiguration.xml文件不同的是:文件名固定只能是generatorConfig,文件中要配置数据库连接驱动绝对路径,并且,数据库连接信息url,username,password等都要写固定<classPathEntry location="E:\MavenRepository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar" />

  generatorConfig.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">    <!-- 第二种mybatis逆向生成xml配置 -->    <generatorConfiguration>  <!-- 需要指明数据库连接器的绝对路径 -->    <classPathEntry          location="E:\MavenRepository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar" />         <context id="sqlserverTables" targetRuntime="MyBatis3">            <!-- 生成的pojo,将implements Serializable-->            <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>            <commentGenerator>                <!-- 是否去除自动生成的注释 true:是 : false:否 -->                <property name="suppressAllComments" value="true" />            </commentGenerator>                <!-- 数据库链接URL、用户名、密码 -->            <jdbcConnection driverClass="com.mysql.jdbc.Driver"                            connectionURL="jdbc:mysql://localhost:3306/ssm"                            userId="root"                            password="123cy-coo.com">            </jdbcConnection>                <!--              默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer                true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal              -->            <javaTypeResolver>                <property name="forceBigDecimals" value="false" />            </javaTypeResolver>                <!--             生成model模型,对应的包路径,以及文件存放路径(targetProject),targetProject可以指定具体的路径,如./src/main/java,            也可以使用“MAVEN”来自动生成,这样生成的代码会在target/generatord-source目录下            -->            <!--<javaModelGenerator targetPackage="com.joey.mybaties.test.pojo" targetProject="MAVEN">-->            <javaModelGenerator targetPackage="com.yyc.entity" targetProject="./src/main/java">                <property name="enableSubPackages" value="true"/>                <!-- 从数据库返回的值被清理前后的空格  -->                <property name="trimStrings" value="true" />            </javaModelGenerator>                <!--对应的mapper.xml文件  -->            <sqlMapGenerator targetPackage="mappers" targetProject="./src/main/resources">                <property name="enableSubPackages" value="true"/>            </sqlMapGenerator>                <!-- 对应的Mapper接口类文件 -->            <javaClientGenerator type="XMLMAPPER" targetPackage="com.yyc.dao" targetProject="./src/main/java">                <property name="enableSubPackages" value="true"/>            </javaClientGenerator>                    <!-- 列出要生成代码的所有表,这里配置的是不生成Example文件 -->            <table tableName="user_t" domainObjectName="UserInfo"                   enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"                   enableSelectByExample="false" selectByExampleQueryId="false" >                <property name="useActualColumnNames" value="false"/>            </table>        </context>    </generatorConfiguration>

   3.运行方法:在eclipse 中,选择pom.xml文件,击右键先择Run AS——>Maven Build… ——>在Goals框中输入:mybatis-generator:generate  运行即可。

因为第一种xml文件的配置比较灵活,不像第二种xml中还需要写死数据库驱动地址和连接信息,并且还要多加一个jar插件。所以推荐第一种方式

时间: 2024-10-26 21:06:40

使用MyBatis Generator自动生成实体、mapper和dao层的相关文章

mybatis generator自动生成model,mapper等文件

mybatis generator 介绍 mybatis generator中文文档http://mbg.cndocs.tk/ MyBatis Generator (MBG) 是一个Mybatis的代码生成器 MyBatis 和 iBATIS. 他可以生成Mybatis各个版本的代码,和iBATIS 2.2.0版本以后的代码. 他可以内省数据库的表(或多个表)然后生成可以用来访问(多个)表的基础对象. 这样和数据库表进行交互时不需要创建对象和配置文件. MBG的解决了对数据库操作有最大影响的一些

mybatis generator自动生成 实体类, sqlmap配置文件 详细介绍

我使用的是Eclipse Luna 装了自己常用的插件, generator也是其中一个推荐下载 MyBatis_Generator_1.3.1.zip离线安装包 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN

SSM框架搭建(三) 数据库创建和MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件

一:创建数据库 创建Student表 DROP TABLE IF EXISTS `Student`; CREATE TABLE `Student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(40) NOT NULL, `password` varchar(255) NOT NULL, `age` int(4) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCRE

利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件

1. mybatis-generator-core-1.3.5.jar 下载地址:https://github.com/mybatis/generator/releases 2. msyql-connector-java-5.1.30.jar 网上下载. 3. 配置generatorConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration P

使用MyBatis Generator自动生成MyBatis的代码

这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件.这样可以省去很多的功夫,将生成的代码copy到项目工程中即可. 使用自动生成有很多方式,可以在eclipse中安装插件,但是以下将要介绍的这种方式我认为很轻松,最简单,不需要装插件,只需要下几个jar包即可,把它们放在一个目录下面. (上图文件

idea中mybatis generator自动生成代码配置 数据库是sqlserver

好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generatorConfig.xml and jdbc.properties都要放在resource根目录下 具体generatorConfig.xml内容如下: <?xml version="1.0" encoding="UTF-8"?>   <!DOCTYPE

Spring 中使用 Mybatis generator 自动生成代码

Mybatis generator 是一个 Mybatis 插件,可以用于自动生成项目中需要的 pojo 类.对应的 Mapper 接口和 mapper.xml 文件.使用该插件,一方面可以节省开发时间,另一方面也避免手写时打错字的问题. 由于工作需要,我打算在原有的 Spring 项目中使用 Mybatis generator 自动生成代码,以便简化 DAO 层的开发. 闲言少叙,just do it! 1. 引入依赖 a. 父模块配置 <properties> <spring_ver

使用Mybatis Generator自动生成Mybatis相关代码

本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码: 一.构建一个环境: 1. 首先创建一个表: Sql代码   CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); 2. 然后注入数据 Sql代码   insert into pet values('Fluffy', 'Harold',

Mybatis自动生成实体类、dao接口和mapping映射文件

由于Mybatis是一种半自动的ORM框架,它的工作主要是配置mapping映射文件,为了减少手动书写映射文件,可以利用mybatis生成器,自动生成实体类.dao接口以及它的映射文件,然后直接拷贝到工程中稍微修改就可以直接使用了. 生成器目录如下: 首先进入lib文件夹中,该目录如下: (图上文件下载地址:http://download.csdn.net/detail/qiwei31229/9790909) 主要修改generatorConfig.xml <?xml version="1