原文链接

通过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.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.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:34782655@qq.com
* @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插件。所以推荐第一种方式

转载于:https://www.cnblogs.com/panchanggui/p/10401813.html

使用MyBatis Generator自动生成实体、mapper和dao层相关推荐

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

    解决问题: 可利用MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件. 测试环境准备: 新建一个mysql数据库,例如mungerzTest. 生成一张主键为自增ID的学生表: C ...

  2. idea 集成mybatis,利用MyBatis Generator自动生成实体类、mapper文件

    最近一个老项目集成mybatis,利用 generator自动生成实体类.mapper的时候折腾了一小时,记录一下,避免以后再折腾 很简单的三步 https://gitee.com/shunangua ...

  3. SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)

    一.首先添加自动生成代码插件 <!-- mybatis generator 自动生成代码插件 生成时解除注释 --><plugin><groupId>org.myb ...

  4. 使用MyBatis Generator自动生成持久层CRUD代码的两种方法

    最近在使用MyBatis,得知可以利用MyBatis Generator自动生成实体类.DAO接口和Mapping映射文件.当数据库中的表多的时候,让你不用再手写Mapping映射文件,和实体类,就可 ...

  5. mybatis generator 自动生成代码(带注释的实体类)

    使用前提: 当你开发的java 项目或新模块的数据库有N张表操作时,这时要自己写实体类.dao.SqlMapper.xml等文件,如果有多个表,就是造成时间浪费降低开发效率,所以建议使用mybatis ...

  6. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    我们这一一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池的好处我 ...

  7. IDEA使用Mybatis Generator自动生成部分代码

    IDEA使用Mybatis Generator自动生成部分代码 说明:使用Mybatis Generator代码生成配置,简单生成部分后端代码,包括(实体类,Mapper.Mapper.xml文件) ...

  8. Mybatis(1)——Mybatis Generator自动生成代码

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...

  9. mybatis generator自动生成sqlmap代码的不完善之处以及解决方法

    mybatis generator自动生成sqlmap代码的不完善之处以及解决方法 参考文章: (1)mybatis generator自动生成sqlmap代码的不完善之处以及解决方法 (2)http ...

最新文章

  1. 网页分享插件 share.js 国外常用
  2. 河北计算机课本初中,河北:2019-2020学年中小学教学用书有变
  3. select子查询多个字段_SQL复杂查询
  4. centos7 nat模式配置静态ip_Linux不进入网卡配置文件更改静态ip
  5. vue + element 顶部二级菜单_揭秘vue/react组件库中5个quot;作者不造的轮子quot;
  6. ICML2021|超越SE、CBAM,中山大学开源SAM:无参Attention!
  7. TexBox.AutoCompleteSource
  8. 【新书推荐】《微软开源跨平台移动开发实践》带你走近微软开源开源跨平台技术
  9. 上海市二级c语言软件环境,上海市计算机二级C语言复习资料 word整理版.doc
  10. Oracle的Rman差异增量备份
  11. 吃瓜笔记 | 旷视研究院:被遮挡人脸区域检测的技术细节(PPT+视频)
  12. 如何在 iPhone、iPad 和 Mac 上更改日历颜色?
  13. html5获取手机屏幕大小写,html图片自适应手机屏幕大小的css写法
  14. 几个开源即时通讯聊天软件推荐-带源码地址
  15. 【工具用法】Linux登录吉林大学校园网教程(以deepin为例)
  16. 天梯赛 L1-054 福到了 (15 分) C++
  17. 读书笔记_002 甘于平凡而不甘于平凡的腐烂——《平凡的世界》所感
  18. HP Helion让合作伙伴到少增30%收入
  19. FL Studio20最详细的注册教程 附二十位序列号
  20. 计算机的输入输出设备

热门文章

  1. u8 和 char如何转化_如何编写高效率稳定的单片机代码
  2. django_form表单的提交
  3. Django连接数据库增删改查操作
  4. 无基础人员转行做机器学习可以吗?
  5. 如何在 GPU 上加速数据科学
  6. iptables端口转发命令
  7. Shell脚本编程详解
  8. TensorFlow学习笔记(十七)tf.nn.conv2d
  9. Oracle jdk 历史版本官方下载地址及下载方法
  10. Attention的梳理、随想与尝试