-
Mybatis 生成Oracle 数据库代码生成器
2020-10-11 20:02:03Mybatis 生成Oracle 数据库代码生成器 很久以前,我写过一个 mybatis mysql 版本的java 代码生成器,可以生成相应的mapper文件, 接口文件,实体类等代码。但是那个mysql 版本的尽管替换为oracle 的jar 包之后,还是...Mybatis 生成Oracle 数据库代码生成器
很久以前,我写过一个 mybatis mysql 版本的java 代码生成器,可以生成相应的mapper文件, 接口文件,实体类等代码。但是那个mysql 版本的尽管替换为oracle 的jar 包之后,还是不能用。恰好现在的项目又要用到oracle 数据库,于是就看了下,修改了一个oracle 版本的提供下载
基本用户还是与mysql 版本的mybatis 生成器没多大差别,我特地为oracle 单独增加了一个配置文件,还有执行方法
配置文件:<!--?xml version="1.0" encoding="UTF-8"?--> <generatorconfiguration> <!-- classPathEntry:数据库的JDBC驱动的jar包地址--> <classpathentry location=""D:\oracle\instantclient_11_2\ojdbc6.jar""> <context id=""ORACLE_TABLES"" targetruntime=""MyBatis3""> <commentgenerator> <property name=""suppressAllComments"" value=""true""> <property name=""suppressDate"" value=""true""> </property></property></commentgenerator> <jdbcconnection driverclass=""oracle.jdbc.driver.OracleDriver"" connectionurl=""jdbc:oracle:thin:@172.16.10.55:1521:orcl"" userid=""shange"" password=""123456""> </jdbcconnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javatyperesolver> <property name=""forceBigDecimals"" value=""true""> </property></javatyperesolver> <!-- targetProject:自动生成代码的位置 --> <!-- 这里是 实体类的包. --> <javamodelgenerator targetpackage=""com.isprint.server.yessafeid.core.model.bto"" targetproject=""src""> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name=""enableSubPackages"" value=""true""> <!-- 从数据库返回的值被清理前后的空格 --> <property name=""trimStrings"" value=""true""> </property></property></javamodelgenerator> <!-- 这里是放XML 隐射文件的目录 --> <sqlmapgenerator targetpackage=""com.isprint.server.yessafeid.core.dao.mapper.oracle"" targetproject=""src""> <property name=""enableSubPackages"" value=""true""> </property></sqlmapgenerator> <!-- 这里是放接口文件的包名 --> <javaclientgenerator type=""XMLMAPPER"" targetpackage=""com.isprint.server.yessafeid.core.dao"" targetproject=""src""> <property name=""enableSubPackages"" value=""true""> </property></javaclientgenerator> <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 --> <table schema="""" tablename=""T_USER"" domainobjectname=""UserBto"" enablecountbyexample=""false"" enableupdatebyexample=""false"" enabledeletebyexample=""false"" enableselectbyexample=""false"" selectbyexamplequeryid=""false""> </table> </context> </classpathentry></generatorconfiguration>
执行的java 代码方法:
import org.mybatis.generator.ant.GeneratorAntTask; public class GenOracleMain { public static void main(String[] args) { try { GeneratorAntTask task = new GeneratorAntTask(); //配置文件的路径。 String genCfg = "D:/Dev/eclipse/workspace/myBatisGenerator/src/mbgConfigurationoracle.xml"; task.setConfigfile(genCfg); //(配置文件具体path) task.execute(); } catch (Exception e) { e.printStackTrace(); } } }
注意:
mybatis 代码生成器 生成mysql代码时 schema 需要填写
mybatis 代码生成器 生成oracle代码时 schema 不需要填写<!-- mybatis 代码生成器 生成mysql代码时 schema 需要填写 --> <!--<table schema="public" tableName="tb_rule" domainObjectName="TbRule"></table>--> <!--<table schema="public" tableName="tb_organ" domainObjectName="TbOrgan"></table>--> <!--<table schema="public" tableName="payment" domainObjectName="payment"></table>--> <!-- mybatis 代码生成器 生成oracle代码时 schema 不需要填写 --> <table schema="" tableName="tb_report" domainObjectName="TbReport"></table>
参考网址及代码下载地址:
http://www.yihaomen.com/article/java/589.htm -
mybatis生成实体类
2017-12-18 13:25:35mybatis生成实体类,接口,配置文件文章转自http://www.zuidaima.com/share/2148093791816704.htm
项目(apptjca)mybatis通过表order生成实体,配置文件,接口,整理如下
1)配置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"> <generatorConfiguration> <classPathEntry location="mysql-connector-java-5.1.27.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <!--数据库链接URL,用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/logtest" userId="root" password="root"> </jdbcConnection> <javaTypeResolver > <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成模型的包名和位置--> <javaModelGenerator targetPackage="com.logca.entity" targetProject="src"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成映射文件的包名和位置--> <sqlMapGenerator targetPackage="com.logca.mapper" targetProject="src"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成DAO的包名和位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.logca.dao" targetProject="src"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名--> <table tableName="order" domainObjectName="Order" enableCountByExample="lib" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/> </context> </generatorConfiguration>
2)在lib文件夹下建立src文件,加入下面的包
3)cmd执行
1.cd C:\Users\zhmin\workspace\logCA\WebContent\WEB-INF\lib
2.java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite4)运行成功后/lib/src文件下生成文件
-
MyBatis Generator(MBG)扩展MyBatis生成器
2017-09-14 12:40:27扩展MyBatis生成器MyBatis Generator(MBG)是为扩展性设计的。使用Java和XML元素的简单DOM表示来执行所有代码生成。Java DOM包含在包org.mybatis.generator.api.dom.java中XML DOM包含在包org.mybatis.generator....扩展MyBatis生成器
使用Java和XML元素的简单DOM表示来执行所有代码生成。Java DOM包含在包org.mybatis.generator.api.dom.java中XML DOM包含在包org.mybatis.generator.api.dom.xml中这些类对于每种可能的代码生成可能性都不够,但它们对于生成简单到中等复杂的Java和XML代码是非常有用的。使用配置文件中的选项,您可以提供自己的许多关键代码生成接口的实现。您还可以将任何提供的实现子类化以提供自定义行为。该页面将描述可用的公共API,并提供指向源代码的指针以供进一步调查。
MyBatis Generator(MBG)是为扩展性设计的。如果您对如何扩展MBG有任何疑问,请随时向mybatis-user@googlegroups.com的支持邮件列表发送备注。
扩展与插入
虽然在此页面上显示了许多不同的扩展点,但在大多数情况下,通过使用插件来扩展MBG将会更加容易。有关详细信息,请参阅实施插件参考页面。代码生成的主要扩展点是org.mybatis.generator.api.IntrospectedTable。实现代码生成器是一项不平凡的任务,只有当您想要完全替代MBG的代码生成活动时,才应该考虑这一点。在Abator的原始版本之后的几年里,很少有增强请求出现,无法被插件处理。扩展点
MBG提供了许多不同的扩展点。以下部分列出了扩展MBG的不同方法,并描述了使用不同扩展可以实现的活动类型。如果您需要帮助了解不同的选项,请随时在用户邮件列表中提出问题。org.mybatis.generator.api.IntrospectedTableIntrospectedTable是一个抽象类,可以扩展为提供与MBG提供的版本不同的代码生成器。这种实现的一个很好的例子是基于FreeMarker或Velocity模板的实现。在大多数其他情况下,编码插件是更好的方法。如果您选择扩展此类,则必须提供代码来生成Java和XML文件。您可以选择使用您选择的技术生成这些文件。基础IntrospectedTable类包含可以查询的org.mybatis.generator.internal.rules.Rules的实例,以确定代码生成的许多规则。MBG提供了几个内省表的实现。该实现是基于<context>元素的targetRuntime属性的值来选择的。在许多情况下,扩展其中一个内置的实现将会更简单,而不是从头创建一个实现。下表显示了内置实现:
如果您选择实现此扩展点,请使用<context>元素的targetRuntime属性指定实现的完全限定类名。目标运行时 实现类 MyBatis3 (default) org.mybatis.generator.codegen.mybatis3.IntrospectedTableMyBatis3Impl Ibatis2Java2 org.mybatis.generator.codegen.ibatis2.IntrospectedTableIbatis2Java2Impl Ibatis2Java5 org.mybatis.generator.codegen.ibatis2.IntrospectedTableIbatis2Java5Impl
org.mybatis.generator.api.IntrospectedColumn
IntrospectedColumn是一个类,它保存有关从数据库元数据返回的列的信息。在一些罕见的情况下,可能需要重写此类来提供自己的实现 - 特别是如果您创建一组新的代码生成器。如果您选择实现此扩展点,请使用<context>元素的introspectedColumnImpl属性指定实现的完全限定类名。org.mybatis.generator.api.JavaTypeResolver
MBG调用此接口中的方法,以便在数据库内省期间将JDBC类型映射到Java类型。此接口的默认实现是org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl。您可以提供自己的实现,并且默认实现被设计为可扩展性。要提供自己的实现,请在XML配置中指定完全限定类名,如下所示:
org.mybatis.generator.api.ShellCallback<javaTypeResolver type="mypackage.MyImplementation"> ... </javaTypeResolver>
MBG调用此接口中的方法来执行它不能独立执行的功能。这些功能中最重要的是:将项目/包转换为目录结构如果存在同名/包的现有Java文件,则合并Java源文件。这个界面的默认实现是org.mybatis.generator.internal.DefaultShellCallback。默认实现只需将项目和包合并在一起,并在需要时创建必需的包目录。默认的实现不支持合并Java文件,并且将覆盖或忽略文件。您可以提供自己的实现。如果您想将MBG集成到其他环境中,这将是写入最重要的类。例如,Eclipse插件提供了在Eclipse环境中运行时支持Java文件合并的此接口的实现。要提供自己的实现,请将构造函数上的接口实例提供给org.mybatis.generator.api.MyBatisGenerator对象。这不能通过XML进行配置。如果您提供自己的这个界面的实现,那么我们假设您还提供一些附加代码(如新的Ant任务)来运行您的实现。org.mybatis.generator.api.ProgressCallback
MBG调用此接口中的方法来报告文件生成过程中的进度(长时间运行的过程)。这个接口的默认实现是org.mybatis.generator.internal.NullProgressCallback,它只是忽略所有的进度消息。您可以提供此界面的实现来支持进度通知和取消代码生成。将MBG集成到其他IDE环境中时,实现此界面将非常重要。Eclipse插件提供了一个这个接口的实现,它挂接到Eclipse的进度通知系统中。要提供自己的实现,请在org.mybatis.generator.api.MyBatisGenerator.generate()方法调用之一上提供一个接口实例。这不能通过XML进行配置。再次,我们假设如果您提供自己的这个接口的实现,那么您还提供一些附加代码(如新的Ant任务或IDE集成)来运行您的实现。
原文:Extending MyBatis Generator相关阅读:
MyBatis Generator (MBG) 代码生成器简介
MyBatis Generator 代码生成器 快速入门指南
SSM框架——使用 MyBatis Generator 生成代码,包括:Model、Dao、Mapping
实现插件提供的插件
-
使用UUID之tk.mybatis生成的mybatis实体类id生成UUID
2019-07-18 17:09:08tk.mybatis生成mapper和entity后,把实体类ID进行加密 1.在tk.mybatis包下创建generateUUID类,代码如下,可直接拷贝: 这里是代码 import tk.mybatis.mapper.genid.GenId; import java.util.UUID; public class ...tk.mybatis生成mapper和entity后,把实体类ID进行加密
1.在tk.mybatis包下创建generateUUID类,代码如下,可直接拷贝:
这里是代码
import tk.mybatis.mapper.genid.GenId;
import java.util.UUID;
public class GenerateUUID implements GenId {
public String genId(String s, String s1) {
return UUID.randomUUID().toString().replace("-","");
}
}
2.在实体类ID上加这里是引用 @KeySql(genId = GenerateUUID.class)
3.ok了。就可以用了 -
mybatis 生成代码配置 mybatis-generator:generate 的使用详解
2019-08-21 22:59:39mybatis 生成代码配置 mybatis-generator:generate 的使用 使用详解 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=... -
Mybatis生成实体类联合主键
2019-01-02 17:10:57MyBatis生成实体遇到联合主键时,默认会生成两个实体类 。在 context 标签中加入属性即可只生成一个实体类。 <context id="DB2Tables" targetRuntime="MyBatis3" defaultModelType=&... -
mybatis生成工具类
2020-08-19 17:25:59大家都知道Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,并且手动书写很容易出错,那么今天来介绍一下使用Mybatis-Generator来帮我们自动生成文件。如果大家有更好实现方式欢迎... -
Mybatis生成的实体类和Mapper.java类报错
2019-07-30 22:54:12在使用Mybatis生成代码之后出现了问题,所有标识符报错,重新生成也不行 报错提示: Duplicate field DataOfTarget.itemCode 所有的类型的标识符都报错,没出现重复的情况 ![图片说明]... -
Mybatis生成pojo插件
2013-08-31 14:37:23Mybatis pojo插件生成工具 把包下载下来,配置到eclipse中,project new 可以看到mybatis插件已经安装好 -
mybatis生成Mapper对象注入为空的情况
2019-12-31 16:26:39记一次springboot使用mybatis生成的mapper在类中注入为空的情况。 该情况是使用网上@MapperScan(xxx.xxxx.xxx)后还是注入为空的情况。 情况如下: 情况一、 有A,B两个类; 其中A类中使用注解的方式引入了... -
MyBatis生成UUID
2017-11-11 13:19:42keyProperty:设置需要自动生成键值的列order:可选值BEFORE和AFTER,设置为BEFORE会先执行selectKey语句,设置keyProperty属性,再执行insert语句;设置为AFTER会先执行insert语句再执行selectKey语句resultType:... -
使用mybatis生成UUID
2018-04-03 17:33:26)这个注解自动生成uuid,但是我使用mybatis xml文件的形式写sql语句,@GeneratedValue(generator="UUID")这个注解是hibernate的注解,与mybatis不能兼容,插入语句时一直报错id不能为空。 在网上搜资料... -
MyBatis Generator对于mysql text类型数据的处理||MyBatis生成的selectByExample方法获取text类型数据得到...
2019-04-22 02:03:00MyBatis Generator对于mysql text类型数据的处理||MyBatis生成的selectByExample方法获取text类型数据得到空值 Mybatis自动生成的Xml文件,text数据类型会默认产生XXWithBlobs的方法,用以获取含有... -
mybatis生成实体自带注释
2019-02-25 10:52:45mybatis通常自动生成的实体是没有中文注释的,想要生成的实体有中文注释,步骤如下 1、数据库的自字段一定要有注释,如下图 实体中的所有注释是从数据库中的注释而来 2、并创建实体类DefaultCommentGenerator 的... -
mybatis生成UUID主键,且获取当前新增的UUID主键
2017-05-16 21:50:52mybatis生成UUID主键,且获取当前新增的UUID主键 在平时业务需求中,有可能会需要当前新增对象的主键ID。 在此我对用UUID作为主键ID做了实验。 1 2 select uuid() 3 keyProperty:selectKey子元素... -
tk.mybatis生成主键
2019-11-13 18:23:07项目中使用了tk.mybatis,如果有需要在插入数据以后返回主键,使用以下注解(需要数据库主键类型为自增类型) @GeneratedValue(strategy= GenerationType.IDENTITY) -
Mybatis生成类 UserKey 和 UserWithBlobs
2019-07-16 11:50:40UserKey 和 UserWithBlobs 对于 MySQL 数据库,在生成 User 实体类时,还会同时生成 Userkey 和...在 MySQL 8.0 以上的版本中,在生成 User 表的实体类时,Mybatis Generator 会找到多张 User 表,包括 MySQL inform... -
Mybatis生成不了mysql update方法
2018-06-13 16:35:48今天用mybatis-generator生成实体、mapper、xml时,死活生成不了update和updateByPrimaryKeySelective最终排查原因为mybatis-generator使用了6.X的mysql驱动,降级为5.X的版本即可... -
mybatis生成代码工具generator(附带mysql、oracle、sqlserverjar包)
2016-12-08 13:43:37修改好配置文件,在命令窗口执行txt中命令即可生成mybatis所需三种底层代码 -
关于mybatis插件tk.mybatis生成的动态sql语句字段不加``的问题
2018-03-17 08:59:03今天在用tk.mybatis插件的时候,查询一个对象用mapper.selectByPrimaryKey(id)方法时出现错误,错误原因是mybatis在生成查询语句时对表名和列名没有加` `符号,正巧那张表的列明有一个字段为option,正好是mysql的... -
Generate mybatis 生成text属性
2017-08-22 09:33:00 -
使用Mybatis生成工具自动生成实体类和对应的mapper映射文件以及接口文件
2017-06-18 19:49:431.相关的jar包Mybatis-...使用官方网站的mapper自动生成工具mybatis-generator-core-1.3.2来生成po类和mapper映射文件。作用:mybatis官方提供逆向工程,可以使用它通过数据库中的表来自动生成Mapper接口和映射文件 -
MyBatis生成GeneratedKeys
2012-11-27 15:55:34生成GeneratedKeys<insert id="add" parameterType="Article" keyProperty="id" useGeneratedKeys="true"> -
使用freemarker进行mybatis生成DAO层
2018-08-12 20:49:26使用Generator创建自定义的模版感觉不是很爽,就决定用freemarker去生成DAO和Service组件,这样,只用考虑模版如何写就可以了,好处就是自己可以根据自己的业务定制自己的通用模版 地址:... -
使用springMVC+mybatis生成Dao层的xxDao
2017-03-06 15:09:51使用mybatis的Generator自动生成代码的时候,在生成Dao接口时,生成的文件名是xxMapper,那么怎样生成xxDao呢?在刚开始使用的时候确实很苦恼,经过搜索及查询文档, 发现在mybatis1.3.4版本后,可以在元素下加一个... -
mybatis 生成dao、entity、mapping文件
2016-02-02 14:23:45Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。 相关文件 关于Mybatis-Generator的下载可以... -
java---推荐一款好用的mybatis生成工具
2019-03-14 10:11:56推荐一款好用的mybatis逆向生成工具(真的很好用) 写在前面 有时候写实体bean 和xml 文件会觉得浪费时间也比较繁琐! 如果数据库表字段较多就比较卧槽了(哈哈),mybatis自带的有一个逆向生成的maven方法,这里我给...