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="/Users/kanpiaoxue/develop_tools/maven/maven_repository/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar" /> <context id="context1"> <property name="javaFileEncoding" value="UTF-8" /> <!-- 将下面的 com.example.work.mybatisgenerator.MyCommentGenerator 放在 classpath即可使用 --> <commentGenerator type="com.example.work.mybatisgenerator.MyCommentGenerator"> <property name="suppressAllComments" value="false" /> </commentGenerator> <jdbcConnection connectionURL="jdbc:mysql://127.0.0.1:3306/beidou" driverClass="com.mysql.jdbc.Driver" password="root" userId="root" /> <javaTypeResolver> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- model package and location --> <javaModelGenerator targetPackage="org.kanpiaoxuie.beidou.commons.bean.entity" targetProject="work/src/main/java"> <property name="enableSubPackages" value="true" /> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- mapping package and location --> <sqlMapGenerator targetPackage="org.kanpiaoxuie.beidou.dao.mapper" targetProject="work/src/main/java"> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- dao package and location --> <javaClientGenerator type="XMLMAPPER" targetPackage="org.kanpiaoxuie.beidou.dao" targetProject="work/src/main/java"> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <table tableName="tb_task" domainObjectName="Task" mapperName="TaskDAO" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> </context> </generatorConfiguration>
需要在pom.xml 中添加如下依赖进行扩展:
<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core --> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency>
/** * Copyright kanpiaoxue.org [2017-2018] */ package com.example.work.mybatisgenerator; import static org.mybatis.generator.internal.util.StringUtility.isTrue; import org.mybatis.generator.api.CommentGenerator; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.dom.java.CompilationUnit; import org.mybatis.generator.api.dom.java.Field; import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; import org.mybatis.generator.api.dom.java.InnerClass; import org.mybatis.generator.api.dom.java.InnerEnum; import org.mybatis.generator.api.dom.java.JavaElement; import org.mybatis.generator.api.dom.java.Method; import org.mybatis.generator.api.dom.java.Parameter; import org.mybatis.generator.api.dom.java.TopLevelClass; import org.mybatis.generator.api.dom.xml.XmlElement; import org.mybatis.generator.config.PropertyRegistry; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties; import java.util.Set; /** * MyCommentGenerator.java * * @author kanpiaoxue * @version 1.0 * Create Time 2018年10月27日 下午8:37:40 * Description : */ public class MyCommentGenerator implements CommentGenerator { private Properties properties; private Properties systemPro; private boolean suppressDate; private boolean suppressAllComments; private String currentDateStr; public MyCommentGenerator() { super(); properties = new Properties(); systemPro = System.getProperties(); suppressDate = false; suppressAllComments = false; currentDateStr = (new SimpleDateFormat("yyyy-MM-dd")).format(new Date()); } public void addJavaFileComment(CompilationUnit compilationUnit) { // add no file level comments by default return; } /** * Adds a suitable comment to warn users that the element was generated, and * when it was generated. */ public void addComment(XmlElement xmlElement) { return; } public void addRootComment(XmlElement rootElement) { // add no document level comments by default return; } public void addConfigurationProperties(Properties properties) { this.properties.putAll(properties); suppressDate = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_DATE)); suppressAllComments = isTrue(properties.getProperty(PropertyRegistry.COMMENT_GENERATOR_SUPPRESS_ALL_COMMENTS)); } /** * This method adds the custom javadoc tag for. You may do nothing if you do * not wish to include the Javadoc tag - however, if you do not include the * Javadoc tag then the Java merge capability of the eclipse plugin will * break. * * @param javaElement * the java element */ protected void addJavadocTag(JavaElement javaElement, boolean markAsDoNotDelete) { return; } /** * This method returns a formated date string to include in the Javadoc tag * and XML comments. You may return null if you do not want the date in * these documentation elements. * * @return a string representing the current timestamp, or null */ protected String getDateString() { String result = null; if (!suppressDate) { result = currentDateStr; } return result; } public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); innerClass.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedTable.getFullyQualifiedTable()); sb.append(" "); sb.append(getDateString()); innerClass.addJavaDocLine(sb.toString().replace("\n", " ")); innerClass.addJavaDocLine(" */"); } public void addEnumComment(InnerEnum innerEnum, IntrospectedTable introspectedTable) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); innerEnum.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedTable.getFullyQualifiedTable()); innerEnum.addJavaDocLine(sb.toString().replace("\n", " ")); innerEnum.addJavaDocLine(" */"); } public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); field.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedColumn.getRemarks()); field.addJavaDocLine(sb.toString().replace("\n", " ")); field.addJavaDocLine(" */"); } public void addFieldComment(Field field, IntrospectedTable introspectedTable) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); field.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedTable.getFullyQualifiedTable()); field.addJavaDocLine(sb.toString().replace("\n", " ")); field.addJavaDocLine(" */"); } public void addGeneralMethodComment(Method method, IntrospectedTable introspectedTable) { if (suppressAllComments) { return; } String methodName = method.getName(); String nameDoc = ""; if ("deleteByPrimaryKey".equals(methodName)) { nameDoc = "根据主键删除记录"; } else if ("insert".equals(methodName)) { nameDoc = "新增记录"; } else if ("insertSelective".equals(methodName)) { nameDoc = "根据字段新增记录"; } else if ("selectByPrimaryKey".equals(methodName)) { nameDoc = "根据主键得到记录"; } else if ("updateByPrimaryKeySelective".equals(methodName)) { nameDoc = "根据字段使用主键更新记录"; } else if ("updateByPrimaryKey".equals(methodName)) { nameDoc = "使用主键更新记录"; } else { nameDoc = ""; } method.addJavaDocLine("/**"); StringBuilder sb = new StringBuilder(); sb.append(" *\n"); sb.append(" * "); sb.append(nameDoc).append("\n"); method.addJavaDocLine(sb.toString()); StringBuilder sb1 = new StringBuilder(); for (Parameter parm : method.getParameters()) { sb1.append(" * @param "); sb1.append(parm.getName()); sb1.append(" "); method.addJavaDocLine(sb1.toString().replace("\n", " ")); } StringBuilder sb2 = new StringBuilder(); sb2.append(" * @return 影响记录数量"); method.addJavaDocLine(sb2.toString()); method.addJavaDocLine(" */"); } public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { if (suppressAllComments) { return; } method.addJavaDocLine("/**"); StringBuilder sb = new StringBuilder(); sb.append(" * "); sb.append(introspectedColumn.getRemarks()); method.addJavaDocLine(sb.toString().replace("\n", " ")); sb.setLength(0); sb.append(" * @return "); sb.append(introspectedColumn.getActualColumnName()); sb.append(" "); sb.append(introspectedColumn.getRemarks()); method.addJavaDocLine(sb.toString().replace("\n", " ")); method.addJavaDocLine(" */"); } public void addSetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) { if (suppressAllComments) { return; } method.addJavaDocLine("/**"); StringBuilder sb = new StringBuilder(); sb.append(" * "); sb.append(introspectedColumn.getRemarks()); method.addJavaDocLine(sb.toString().replace("\n", " ")); Parameter parm = method.getParameters().get(0); sb.setLength(0); sb.append(" * @param "); sb.append(parm.getName()); sb.append(" "); sb.append(introspectedColumn.getRemarks()); method.addJavaDocLine(sb.toString().replace("\n", " ")); method.addJavaDocLine(" */"); } public void addClassComment(InnerClass innerClass, IntrospectedTable introspectedTable, boolean markAsDoNotDelete) { if (suppressAllComments) { return; } StringBuilder sb = new StringBuilder(); innerClass.addJavaDocLine("/**"); sb.append(" * "); sb.append(introspectedTable.getFullyQualifiedTable()); innerClass.addJavaDocLine(sb.toString().replace("\n", " ")); sb.setLength(0); sb.append(" * @author "); sb.append(systemPro.getProperty("user.name")); sb.append(" "); sb.append(currentDateStr); innerClass.addJavaDocLine(" */"); } /* * (non-Javadoc) * @see org.mybatis.generator.api.CommentGenerator#addModelClassComment(org. * mybatis.generator.api.dom.java.TopLevelClass, * org.mybatis.generator.api.IntrospectedTable) */ @Override public void addModelClassComment(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { if (suppressAllComments) { return; } topLevelClass.addJavaDocLine("/**"); StringBuilder sb = new StringBuilder(); sb.append(" * 数据表: "); sb.append(introspectedTable.getFullyQualifiedTable()); topLevelClass.addJavaDocLine(sb.toString().replace("\n", " ")); topLevelClass.addJavaDocLine(" */"); } /* * (non-Javadoc) * @see * org.mybatis.generator.api.CommentGenerator#addGeneralMethodAnnotation(org * .mybatis.generator.api.dom.java.Method, * org.mybatis.generator.api.IntrospectedTable, java.util.Set) */ @Override public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable, Set<FullyQualifiedJavaType> imports) { } /* * (non-Javadoc) * @see * org.mybatis.generator.api.CommentGenerator#addGeneralMethodAnnotation(org * .mybatis.generator.api.dom.java.Method, * org.mybatis.generator.api.IntrospectedTable, * org.mybatis.generator.api.IntrospectedColumn, java.util.Set) */ @Override public void addGeneralMethodAnnotation(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn, Set<FullyQualifiedJavaType> imports) { } /* * (non-Javadoc) * @see * org.mybatis.generator.api.CommentGenerator#addFieldAnnotation(org.mybatis * .generator.api.dom.java.Field, * org.mybatis.generator.api.IntrospectedTable, java.util.Set) */ @Override public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, Set<FullyQualifiedJavaType> imports) { } /* * (non-Javadoc) * @see * org.mybatis.generator.api.CommentGenerator#addFieldAnnotation(org.mybatis * .generator.api.dom.java.Field, * org.mybatis.generator.api.IntrospectedTable, * org.mybatis.generator.api.IntrospectedColumn, java.util.Set) */ @Override public void addFieldAnnotation(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn, Set<FullyQualifiedJavaType> imports) { } /* * (non-Javadoc) * @see * org.mybatis.generator.api.CommentGenerator#addClassAnnotation(org.mybatis * .generator.api.dom.java.InnerClass, * org.mybatis.generator.api.IntrospectedTable, java.util.Set) */ @Override public void addClassAnnotation(InnerClass innerClass, IntrospectedTable introspectedTable, Set<FullyQualifiedJavaType> imports) { } }
相关推荐
MyBatis Generator 自动生成代码完整包
这是 IntelliJ IDEA Maven Mybatis generator 自动生成代码 的完整源码 教程地址:http://blog.csdn.net/fenglailea/article/details/78291522
Mybatis Generator自动生成代码实例,具体过程和效果看博文 http://blog.csdn.net/evankaka/article/details/47023955
mybatis+generator+mysql自动生成代码
Mybatis Generator自动生成代码实例,具体过程和效果看博文 http://blog.csdn.net/qq_25646191/article/details/78721501
mybatis generator自动生成代码的工具类,里面有详细的步骤说明,里面包含了相关jar包
mybatis generator插件自动生成代码实例,数据库使用mysql
mybatis-generator 自动生成mybatis dao model层代码
使用MyBatis Generator 自动生成Dao、Bean、Mapping。将mysql数据库中的表转换为java中的实体类,接口,和映射文件
mybatis-generator插件 自动生成代码和注解,自动生成数据库的注释
使用Mybatis Generator自动生成Mybatis相关代码
压缩包中含有word文档教程,简单设置后双击批处理即可生成对应文件,复制到项目中即可。简单方便,生成的mapper.xml已包含大部分简单的sql操作语句,mybatis开发者必备工具。
MyBatis Generator代码自动生成,重写MyBatis Generator源码,不需要第三方插件了,main方法运行
通过mybatis-generator-...连接数据库,通过配置文件自动生成对应表的mybatis的配置文件,a.bat是通过cmd命令运行可执行jar mybatis-generator-core-1.3.1.jar ,通过 generatorConfig.xml的配置生成代码到相应位置.
NULL 博文链接:https://itsaga.iteye.com/blog/2285343
mybatis-generator自动生成代码(含中文注释) 1、打开generatorConfig.xml 2、修改数据库链接地址账号密码 将connectionURL修改为你所需生成的对象的数据库地址,修改用户名userId和密码password 3、修改生成Model类...
使用MyBatis Generator自动生成MyBatis代码,最终生成方式有 1、使用Eclipse插件 2、使用命令行 3、自定义Java代码
mybatis-generator-core自动生成代码,无需集成到项目中,直接利用控制台命令生成,生成前需在generator.xml进行数据库连接等配置。
mybatis-generator自动生成代码(附jar包) 本人自己使用后整理成的,内附mysql链接jar包与mybatis 生成代码jar 包