Mybatis逆向工程自动生成代码文件

一般来说都会新建另外一个项目,用于生成代码文件,然后拷贝到需要的项目中。新建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.nhu</groupId><artifactId>MyMavenGenerator</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency><!-- https://mvnrepository.com/artifact/log4j/log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency></dependencies><build/>
</project>

 

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><!-- 是否去除自动生成的注释 true:是 : false:否 --><property name="suppressAllComments" value="true" /></commentGenerator><!--数据库连接的信息:驱动类、连接地址、用户名、密码 --><jdbcConnection driverClass="oracle.jdbc.OracleDriver"connectionURL="jdbc:oracle:thin:@192.168.1.196:1521:orcl" userId="nhu_yzd"password="123"></jdbcConnection><!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- targetProject:生成PO类的位置 --><javaModelGenerator targetPackage="com.nhu.po"targetProject=".\src\main\java"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /><!-- 从数据库返回的值被清理前后的空格 --><property name="trimStrings" value="true" /></javaModelGenerator><!-- targetProject:mapper映射文件生成的位置 --><sqlMapGenerator targetPackage="com.nhu.mapper" targetProject=".\src\main\java"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></sqlMapGenerator><!-- targetPackage:mapper接口生成的位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.nhu.mapper" targetProject=".\src\main\java"><!-- enableSubPackages:是否让schema作为包的后缀 --><property name="enableSubPackages" value="false" /></javaClientGenerator><!-- 有些表的字段需要指定java类型--><table tableName="TABCKINCOME"></table> <table tableName="TABCKUSED"></table><table tableName="TABDEPTINCOME"></table><table tableName="TABDEPTUSED"></table><table tableName="TABPRODUCTS"></table><table tableName="TABPRODUCTSTYPE"></table><table tableName="TABUNIT"></table><table tableName="TABUSERS"></table></context>
</generatorConfiguration>

 

log4j.properties中的配置如下所示:

log4j.rootLogger=DEBUG, Console#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%nlog4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014
\u7248\u6743\u58F0\u660E\uFF1A\u672C\u6587\u4E3ACSDN\u535A\u4E3B\u300CJokerZhan\u300D\u7684\u539F\u521B\u6587\u7AE0\uFF0C\u9075\u5FAA CC 4.0 BY-SA \u7248\u6743\u534F\u8BAE\uFF0C\u8F6C\u8F7D\u8BF7\u9644\u4E0A\u539F\u6587\u51FA\u5904\u94FE\u63A5\u53CA\u672C\u58F0\u660E\u3002
\u539F\u6587\u94FE\u63A5\uFF1Ahttps://blog.csdn.net/JokerZhan/article/details/82942488

 

在com.nhu.main中新建一个java类:GeneratorMain.java 用于生成配置自动生成代码: 

package com.nhu.main;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 GeneratorMain {public void generator() throws Exception {//warnings为用于放置生成过程中警告信息的集合对象List<String> warnings = new ArrayList<String>();//指定是否覆盖重名文件boolean overwrite = true;// 指定配置文件File configFile = new File("generatorConfig.xml");//配置解析类ConfigurationParser cp = new ConfigurationParser(warnings);//配置解析类解析配置文件并生成Configuration 配置对象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) {try {GeneratorMain generatorSqlmap = new GeneratorMain();generatorSqlmap.generator();} catch (Exception e) {e.printStackTrace();}}
}

运行上图代码后,F5刷新项目便可以看到自动生成的代码文件:

                                             

 

将自动生成的代码文件拷贝到需要的项目中即可。

注意:在oracle数据库中是不分大小写的,如果要区分必须要加上引号。用Navicat的可视化界面进行新增的表会自动在表名上加上引号,如 "TabUser" 。这会导致mybatis无法识别表名,从而无法进行逆向工程操作。建议在oracle中建表和表字段时,手动写create语句,并且全部用大写并且不加引号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548407.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LAMP平台架构浅析

LAMP是一个缩写&#xff0c;它指一组常用于来搭建动态网站或者服务器的开源软件&#xff0c;包括&#xff1a;Linux操作系统&#xff0c;Apache网络服务器&#xff0c;MySQL数据库&#xff0c;PHP、Perl或者 Python编程语言(本文以php为例)。 下面就介绍一下如何基于rpm包的形式…

Log4j.properties的简单配置

一、首先导入jar包&#xff1a;log4j-1.2.17.jar 二、新增log4j.properties配置文件并输入以下内容&#xff1a; 三、在测试代码总中进行测试&#xff1a; Service public class CKKuCunServiceImpl implements CKKuCunService{Autowiredpublic CKKuCunMapper ckKuCunMapper;…

建立openstack quantum开发环境 .

建立openstack quantum开发环境 作者&#xff1a;张华 发表于&#xff1a;2012-4-6 版权声明&#xff1a;可以任意转载&#xff0c;转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 上篇中讲了如何建立openstack的最小开发环…

使用Jquery插件bTabs实现多页签打开效果

官网地址&#xff1a;点击这里进入官网 资源导入 <link rel"stylesheet" href"b.tabs.css" type"text/css"> <!-- 插件核心脚本 --> <script type"text/javascript" src"b.tabs.js" ></script> &l…

体验Office 2013预览版

微软目前刚发布新版本的office2013,暂时没有中文版。Windows 8下搭配64位office 2013效果非常不错&#xff0c;具体浏览下方的视频。 X86&#xff08;32位&#xff09; 英文版&#xff1a;http://care.dlservice.microsoft.com/download/4/7/1/4712B4E1-4DD9-4468-B8A4-507D7F9…

网络营销第四课:网络营销需要掌握的网页代码(2)

1、<hr>水平线标记&#xff1a;<HTML> <HEAD> <TITLE>HR的用法</TITLE> </HEAD> <BODY> <H3>插画中国论坛:漫画 卡通 吉祥物 游戏 海报(原创) </H3> <HR size 15 align left width 80%> <HR color"…

PDA手持终端WinCE系统连接SqlServer数据库

引言&#xff1a;因项目需求需要通过使用PDA手持终端对条码进行数据采集&#xff0c;并将数据传输到SqlServer进行增删改查操作&#xff0c;一般来说&#xff0c;跟sqlserver的版本没有特别大的关系&#xff0c;我见过用05的、08的、我自己用的2014版本。PDA用的是基恩士的&…

堆和栈、值类型与引用类型、装箱与拆箱

堆栈&#xff1a;内存条里的某一块。 电脑中有6个地方可以保存数据。 <1>寄存器&#xff1a;保存最快。这东西在处理器内部。也就是CPU里的一小块地方给你放数据。既然是CPU&#xff0c;那么主要工作是计算&#xff0c;所以这块寄存器能放的东西十分有限&#xff0c;寄存…

ASP.NET MVC 上传图片到项目目录中的文件夹并显示

因项目需求&#xff0c;需要一个上传图片并显示的功能&#xff0c;类似于上传头像并显示出来。查阅了网上资料&#xff0c;写了个Demo&#xff0c;希望能帮助到更多的人。此Demo基于ASP.NET MVC实现。 选择图片&#xff1a; 点击按钮进行上传&#xff1a; 一、先在项目中新建一…

JQuery Datatables 样式Style

用了这么久的datatables&#xff0c;才发现datatables有具体的样式和详细说明&#xff0c;还可以自定义配置查看。 点击这里进入datatables官网具体样式查看 一、所有的class属性及示例HTML代码写法&#xff1a; 二、 表格内样式(字体居中、居左、居右等)&#xff0c;targets代…

Juniper SA SSL ×××配置宁盾DKEY短信动态密码步骤

1. 方案简介 传统的双因子认证技术是基于硬件令牌方式&#xff0c;IT管理员会为每个用户分配分发一只令牌&#xff0c;用户登录时输入令牌上显示的6位随即数字&#xff0c;即可完成登录是目前最为常用的强身份认证方案&#xff0c;它最大优点在于认证响应度高&#xff0c;然而采…

使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。

一、报错截图如下所示&#xff1a; 二、报错代码&#xff1a; List<BarcodeEntity> Lists _IBarcode.GetBarcodeByWhAndType(WhId,BarcodeType); return Json(Lists,JsonRequestBehavior.AllowGet); 三、修正代码&#xff1a; List<BarcodeEntity> Lists _IBa…

DevExpress之TreeList节点绑定图片

最近在项目中使用到了DX中的TreeList控件绑定数据源时在每个节点前显示特点的图片&#xff1b;查阅相关资料实现方法如下&#xff1a;1.首先打开VS2010新建一个WINFROM应用程序&#xff1b; 2.在WINFROM应用程序中增加DX中的TreeList控件&#xff1b;如下图&#xff1a; 3.在窗…

ASP.NET MVC从数据库读取、存入图片

一、DEMO效果 先选择图片&#xff0c;点击上传后&#xff0c;即可在照片预览中看到照片。如果需要更改&#xff0c;重新上传就可覆盖原图片。 二、代码 页面端&#xff0c;这里有个细节&#xff1a;再次上传后&#xff0c;如果<img>的URL不变&#xff0c;浏览器会从缓存中…

C#使用模板文件批量导出word文档

需求背景 因为疫情爆发&#xff0c;进入一级响应状态&#xff0c;公安部门进行了严格出入境管理&#xff0c;需要对每个出入境的人进行状态跟踪。 疫情专班会将出入境的每个人员汇总在一张Excel表中&#xff0c;如下图所示&#xff1a; 每一行对应一个人员信息&#xff0c;一个…

原子操作的实现原理(锁和循环CAS)

1 引言 原子&#xff08;atom&#xff09;本意是“不能被进一步分割的最小粒子”&#xff0c;而原子操作&#xff08;atomic operation&#xff09;意为”不可被中断的一个或一系列操作” 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Inter处理器和…

Linux之软件安装YUM

在终端中输入yum即可…… 如果已经安装&#xff0c;会显示yum的参数 如果没有安装&#xff0c;会提示yum未安装或无效命令…… 建议&#xff1a; 以Redhat Enterprise Linux 5&#xff08;RHEL 5&#xff09;为例&#xff1a; 1. 首先你可以使用命令&#xff1a;rpm -qa |grep …

cdgb调试linux崩溃程序

直接上原图: 使用命令:cgdb test test.core.2235 安装cgdb程序步骤&#xff1a; 1&#xff1a;wget http://cgdb.me/files/cgdb-0.7.1.tar.gz(网络会受到影响) 2:解压.tar.gz文件 3:./configure --prefix/usr/local之后会提示 error: CGDB requires curses.h or ncurses/cu…