Mybatis-Generator自动生成Dao、Model、Mapping等相关映射文件(懒人版)

时间:2022-04-13 03:59:55

今天在学习mybatis生成相关的映射文件的时候,发现了往期的生成Dao、Model、Mapping等文章多数都是一样的,我也在学着重复造*,不过是懒人造的。本文旨在解决开发过程,简化配置文件的“手写”。

废话不多说,show me the code!

  步骤一:新建普通maven工程,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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.generator</groupId>
<artifactId>mybatis-gererator</artifactId>
<version>0.0.1-SNAPSHOT</version> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- Mysql -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.7</version>
</dependency>
<!-- Mysql 依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!--生成代码插件 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

  步骤二:添加generatorConfig.xml(27行--31行可以不用急着写,请看步骤三

 <?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="prod">
<!-- RowBounds pagination -->
<plugin type="org.mybatis.generator.plugins.RowBoundsPlugin" />
<plugin type="org.mybatis.generator.plugins.CaseInsensitiveLikePlugin" />
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> <commentGenerator>
<property name="suppressDate" value="true" />
<property name="suppressAllComments" value="true" />
</commentGenerator> <!-- jdbc连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/shopping"
userId="root" password="1234" /> <javaModelGenerator targetPackage="com.shopping.entity" targetProject="src/main/java">
<!-- 是否针对string类型的字段在set的时候进行trim调用 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="mappers" targetProject="src/main/java" />
<javaClientGenerator targetPackage="com.shopping.mapper" targetProject="src/main/java" type="XMLMAPPER" /> <table tableName="tb_address" domainObjectName="tbAddress"></table>
<table tableName="tb_areas" domainObjectName="tbAreas"></table>
<table tableName="tb_brand" domainObjectName="tbBrand"></table>
<table tableName="tb_cities" domainObjectName="tbCities"></table>
<table tableName="tb_user" domainObjectName="tbUser"></table> </context>
</generatorConfiguration>

   步骤三:生成表的名字与别名的映射字符串

修改jdbc的相关配置参数,运行main方法,可以在控制台输出所有的表名与驼峰命名的表名映射关系xml对,然后从控制台中复制了贴回步骤二中的generatorConfig.xml,替换原有的27~31行。添加此步骤的目的在于表名过多的时候,优势就出来了。需要修改的地方也给大家标记出来了,怎么样,全程都在偷懒~

 package com.mybatis;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import org.mybatis.generator.api.ShellRunner; public class SqlMaperCreater { public static void main(String[] args) throws ClassNotFoundException, SQLException { // 生成表的名与别名对应xml
createTableMapping(); //生成dao mapper entity对应文件
//args = new String[] { "-configfile", "src\\main\\resources\\gereratorConfig.xml", "-overwrite" };
//ShellRunner.main(args);
} public static void createTableMapping() throws ClassNotFoundException, SQLException {
String URL = "jdbc:mysql://127.0.0.1:3306/shopping?useUnicode=true&amp;characterEncoding=utf-8";
String USER = "root";
String PASSWORD = "1234";
// 1.加载驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 2.获得数据库链接
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
// 3.通过数据库的连接操作数据库,实现增删改查(使用Statement类)
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select table_name from information_schema.tables where table_schema='shopping';");
// 4.处理数据库的返回结果(使用ResultSet类)
while (rs.next()) {
String tableName = rs.getString("table_name");
String xml = fotmatTableName2Xml(tableName);
System.out.println(xml);
} // 关闭资源
rs.close();
st.close();
conn.close();
} /**
* 格式化生成table名与别名的映射xml
* @param tableName
* @return
*/
private static String fotmatTableName2Xml(String tableName) {
StringBuilder tableNamefmt = formatCamelName(tableName);
StringBuilder sb = new StringBuilder("<table tableName=\"");
sb.append(tableName).append("\" domainObjectName=\"").append(tableNamefmt).append("\"></table>");
return sb.toString();
} /**
* 将下划线大写方式命名的字符串转换为驼峰式。 例如:HELLO_WORLD->HelloWorld
* @param name 转换前的下划线大写方式命名的字符串
* @return 转换后的驼峰式命名的字符串StringBuilder
*/
public static StringBuilder formatCamelName(String name) { StringBuilder result = new StringBuilder();
// 非法字符串过滤
if (name == null || name.isEmpty()) {
return result;
} // 不含下划线,仅将首字母小写
if (!name.contains("_")) {
return result.append(name.substring(0, 1).toLowerCase()).append(name.substring(1));
} // 用下划线将原始字符串分割
String camels[] = name.split("_");
for (String camel : camels) {
if (camel.isEmpty()) {
continue;
} if (result.length() == 0) {
result.append(camel.toLowerCase());
continue;
} result.append(camel.substring(0, 1).toUpperCase());
result.append(camel.substring(1).toLowerCase());
}
return result;
} }

  步骤四:生成dao,mapper和entity(或者是model)

将步骤二中的16行注释,放开19,20行的注释,再次运行main方法,然后在项目上右键refresh,最终生成的文件结构如下图

Mybatis-Generator自动生成Dao、Model、Mapping等相关映射文件(懒人版)

欢迎转载学习和“偷懒”、拍砖。

Mybatis-Generator自动生成Dao、Model、Mapping等相关映射文件(懒人版)的更多相关文章

  1. 【Java MyBatis Generator】使用generator自动生成Dao,Mapping和实体文件

    具体请参照: http://blog.csdn.net/fengshizty/article/details/43086833 按照上面博客地址,下载Generator的依赖包: 如下是我的配置文件: ...

  2. mybatis generator 自动生成dao层映射代码

    资源: doc url :http://www.mybatis.org/generator/ download:https://github.com/mybatis/generator/release ...

  3. IDEA Maven Mybatis generator 自动生成代码

    IDEA Maven Mybatis generator 自动生成代码 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP ...

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

    本文将简要介绍怎样利用Mybatis Generator自动生成Mybatis的相关代码: 一.构建一个环境: 1. 首先创建一个表: CREATE TABLE pet (name VARCHAR(2 ...

  5. SpringBoot 添加mybatis generator 自动生成代码插件

    自动生成数据层代码,提高开发效率 1.pom添加插件,并指定配置文件路径 <!-- mybatis generator 自动生成代码插件 --> <plugin> <gr ...

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

    好长时间没有写博客了,最近公司要用java语言,开始学习java,属于初学者,今天主要记录一下mybatis generator自动生成代码,首先在如下图的目录中新建两个文件,如下图 generato ...

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

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

  8. IDEA Maven Mybatis generator 自动生成代码&lpar;实例讲解&rpar;&lpar;转&rpar;

    IDEA Maven Mybatis generator 自动生成代码(实例讲解) MyBatis Generator • 简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的 ...

  9. Mybatis generator自动生成mybatis配置和类信息

    自动生成代码方式两种: 1.命令形式生成代码,详细讲解每一个配置参数. 2.Eclipse利用插件形式生成代码. 安装插件方式: eclipse插件安装地址:http://mybatis.google ...

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

    这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生 ...

随机推荐

  1. SQL语句操作数据与一些函数使用的丰富数据库

    数据库有多重要,其实不用我说,但该怎么运用好数据库下SQL语句与其它的如“函数”等等,那就需要我们大家多多去练习并总结其中的窍门,或许你的总结没那么好,担只要你的练习足够多,就算那不是窍门,那也将是你 ...

  2. phpcms v9 数据源

    先到phpcms后台的模块下找到数据源 数据源有两种方式 1,内部数据源 2,外部数据源 这里只做外部数据源.添加一个外部数据源 1)必须填写数据库链接信息,指定一个数据名(在站内调用是使用) 2)进 ...

  3. f2fs源码解析&lpar;五&rpar; node管理结构梳理

    node是f2fs重要的管理结构, 它非常重要! 系统挂载完毕后, 会有一个f2fs_nm_info结构的node管理器来管理node的分配. f2fs_nm_info中最让人疑惑的是几颗基数树: s ...

  4. 安卓模拟器还是&quot&semi;genymotion&quot&semi;最靠谱&period;

    安卓模拟器还是"genymotion"最靠谱. genymotion

  5. gulp-htmlmin可以压缩html的gulp插件

    通过一条命令用Npm安装gulp-htmlmin: npm install gulp-htmlmin --save-dev 安装完毕后,打开gulpfile.js文件,我们里面编写一个task用来专门 ...

  6. java类的封装、继承、多态

    一.封装(encapsulation) 封装性就是把类(对象)的属性和行为结合成一个独立的相同单位,并尽可能隐蔽类(对象)的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系.封装的特 ...

  7. appium执行iOS测试脚本并发问题

    appium1.4.X+iOS9.X+xcode7.X: appium1.4.x+iOS9.x+xcode7.x,这一整套的配置做移动端自动化测试是测试人员常用的测试框架.关于,这一套测试框架的并发问 ...

  8. SQL数据库的多表查询

    多表查询分为 内.外连接 外连接分为左连接(left join 或left outer join).右连接(right join 或者 right outer join).和完整外部连接 (full ...

  9. Nmap的详细使用

    Nmap的详细使用 介绍常用参数选项主机发现端口扫描服务和版本探测操作系统探测性能优化防火墙/IDS 躲避和哄骗输出 (一)介绍 Nmap — 网络探测工具和安全/端口扫描器. Nmap (“Netw ...

  10. Eclispe让SVN插件显示英文

    eclipse\configuration\config.ini 文件添加以下内容: # Set Subversion English Version osgi.nl=en_US