逆向工程生成Mybatis映射文件及持久化类

使用IDEA逆向工程生成Mybatis的配置文件没有Hibernate那么方便—Hibernate逆向工程,因为IDEA没有Mybatis的逆向工程插件,所以想要使用Mybatis逆向工程,需要创建一个Java项目,利用Mybatis官方提供的jar包:mybatis-generator-core-1.3.2,完成逆向工程操作

1.创建一个逆向工程项目

我创建了一个Mybatis逆向工程项目并把它放到了码云上,链接地址–Mybatis逆向工程
如果自己创建项目,则创建一个普通Java项目即可(我创建了一个Maven项目)
1,创建一个Java类GeneratorSqlmap
2,导入log4j日志文件
3,在项目目录下创建一个逆向工程配置文件generatorConfig.xml
4,导入jar包,最重要的是mybatis-generator-core-1.3.2(实现逆向工程的工具类都在这个jar包中)

项目结构如图所示

2.完善工具类及配置文件

1.log4j配置文件(对项目没有影响,一般配置即可)

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=d:\\mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###
### fatal error warn info debug trace
log4j.rootLogger=off, stdout

2.工具类GeneratorSqlmap(不用改动)

package com.itheima.utils;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;import java.io.File;
import java.util.ArrayList;
import java.util.List;public class GeneratorSqlmap {public void generator() throws Exception{List<String> warnings = new ArrayList<String>();boolean overwrite = true;//指定逆向工程配置文件generatorConfig.xmlFile configFile = new File("generatorConfig.xml");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);} //项目配置完成后运行main程序即可获得映射文件和持久化类public static void main(String[] args) throws Exception {try {GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();generatorSqlmap.generator();} catch (Exception e) {e.printStackTrace();}}}

3.配置逆向工程配置文件generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><context id="testTables" targetRuntime="MyBatis3"><commentGenerator><!-- 1.是否去除自动生成的注释 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--2.配置Mysql数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/babasport" userId="root"password="***"></jdbcConnection><!--oracle数据库的连接配置--><!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" userId="yycg"password="yycg"></jdbcConnection> --><!-- 3.默认false,把JDBC DECIMAL和NUMERIC类型解析为 Integer,为 true时把JDBC DECIMAL和NUMERIC类型解析为java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- 4.targetProject:生成持久化类的位置 --><javaModelGenerator targetPackage="com.sandking.mybatis.pojo"targetProject=".\src"><!-- 5.enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /><!-- 6.从数据库返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- 7.targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.sandking.mybatis.mapper"targetProject=".\src"><!-- 8.enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- 9.targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.sandking.mybatis.mapper"targetProject=".\src"><!-- 10.enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 11.指定数据库表 --><table schema="" tableName="bbs_color"></table><table schema="" tableName="bbs_city"></table><!-- 12.有些表的字段需要指定java类型<table schema="" tableName="user"><columnOverride column="id" javaType="Long" /></table>--></context>
</generatorConfiguration>

上述配置文件的配置只有部分是需要根据不同的项目做相应更改的,大部分配置使用默认即可

需要根据不同项目做相应更改的地方

2.连接数据库的用户名和密码
4.持久化类的生成位置
7.mapper映射文件的生成位置
9.mapper接口的生成位置
11.配置数据库的表的信息,只用配置tableName属性(数据库表表名)

3.运行工程生成配置文件及持久化类


运行GeneratorSqlmap的main方法

Mybatis-逆向工程相关推荐

  1. mybatis逆向工程配置文件怎么再偷懒(懒出天际)

    使用mybatis逆向工程时,需要在逆向工程配置文件那里指定要对那些表进行逆向工程,如果数据表很多的话,一个一个地写有点麻烦,为什么不自动生成这些XML字段呢 (我的需求是,将数据表首字母大写,然后下 ...

  2. mybatis逆向工程生成的实体类和表不一致缺少某些字段或者出现其他字段

    错误展示 数据库中product表的相应字段 使用Mybatis逆向工程生成的Procuct实体类 大家可以看到生成的文件和表对比,多了些别的字段,少了表中对应的字段. 原理 那是因为mybatis逆 ...

  3. springboot整合mybatis增删改查(三):mybatis逆向工程

    上一篇已经把项目基本框架完善,接下来就是利用Mybatis Generator逆向工程进行mybatis的整合. 我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够 ...

  4. mybatis 逆向工程使用姿势不对,把表清空了,心里慌的一比,于是写了个插件。

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:又一程序员进了ICU:压垮一个家庭,一张结算单就够 个人原创100W+访问量博客:点击前往,查看更多 荒腔走板 ...

  5. Springboot mybatis逆向工程org.springframework.beans.factory.BeanCreationException: Error creating bean错误

    前言 声明:这个错误只是作者在学习时候的一种情况,并不一定能够解决所有情况.还望各位审视出错具体环境!谢谢. 今天使用mybatis逆向工程 springboot本想着少写点代码,但被个bug纠缠到死 ...

  6. IDEA中Mybatis逆向工程使用方法

    1.首先创建一个Spring Boot项目 工程目录如下所示: 2..添加maven依赖 <!--mysql依赖--> <dependency><groupId>m ...

  7. MyBatis 逆向工程(MyBatis 自动生成接口以及xml)的使用

    刚学MyBatis逆向工程(还以为要反汇编呢.....) MyBatis逆向工程 个人理解就是链接数据库自动生成相关的增删改查相关的类 以及xml文件 (其中有一些不足 应该就是多表链接的问题需要自己 ...

  8. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

  9. Mybatis 逆向工程使用姿势不对文档全被清空,一怒之下写了个插件……

    作者 | why技术 责编 | 王晓曼 来源 | why技术 荒腔走板 时间过的真是快,一周又要结束了.那么,你比上周更博学了吗?先来一个简短的荒腔走板,给冰冷的技术文注入一丝色彩. 上面这张照片是我 ...

  10. 使用IDEA在Maven中创建MyBatis逆向工程以及需要注意的问题(入门)

    逆向工程简介: mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.mapper.xml.pojo-),可以让程序员将更多的精力放在繁杂的业务逻 ...

最新文章

  1. 4000个“不会数学”的程序员出现大反转!居然能学AI,玩算法,搞逻辑!背后原因首次曝光...
  2. 进制转换数据结构c语言不用栈,急求!!!用数据结构(C语言)利用栈实现十进制向二(八)进制转换,要有注释,谢谢!...
  3. [转帖]在SQL SERVER中实现RSA加密算法
  4. python了解一下_Python发展史了解一下
  5. AlexNet代码解读
  6. 数据库-优化-groupby的优化
  7. 1/2 数据获取:本地数据的获取
  8. Oracle 基础 —SQL语句优化的途径
  9. Java学习笔记——函数式接口
  10. 因为我想在博客园长呆,所以给博客园提一些改进建议
  11. 性能为MySQL 10倍!阿里云推出云原生数据仓库AnalyticDB基础版
  12. java web快速入门_Web安全快速入门
  13. 关于SQL Server 2005服务无法启动,报3417错误。(附带重装SQL时解决COM+目录问题)(转帖)
  14. iptables官方文档
  15. 学了python做什么自由职业者_我又有一位程序员朋友成了自由职业者
  16. map mybatis 的字段返回0_mybatis返回map类型数据空值字段不显示(三种解决方法)
  17. 4. 实例palybook安装管理flume
  18. c语言学生教务管理系统,c语言教务管理系统.doc
  19. 羊毛之家,青龙脚本,几乎全部可用
  20. Kubernetes 集群安全 - 鉴权 实战rolebinding和clusterrole

热门文章

  1. 学生信息管理系统(附运行效果图和源码下载)分页技术(后台封装json数据传递到前端显示,动态分页等)(Mybatis,json,ajax,jQuery实用整合示例)
  2. java简单图书馆管理系统_简单 图书馆管理系统 Java+Oracle
  3. MySQL查询日期类数据常用函数
  4. TypeScript:变量和数据类型
  5. SQL:postgresql将查询结果拼接起来
  6. 随手记_vscode怎样加命令行参数进行调试(python)
  7. ValueError: Cannot feed value of shape (784,) for Tensor 'Placeholder:0', which has shape '(?, 784)'
  8. 单应性变换、仿射变换、透视变换
  9. DevExpress WPF v19.1新版亮点:PDF Viewer等控件新功能
  10. Jmeter安装+配置+运行