生成的方式一共有三种
首先在generator.xml中指定数据库驱动包位置,然后在mybatis-generator-core-1.3.1包下创建一个src文件夹(否则生成的文件没地方放)
生产的mapper.xml文件与domain类放在一个报下面(否则无法映射)
e:\>java -jar e:\mybatis-generator-core-1.3.1\lib\mybatis-generator-core-1.3.1.j
ar -configfile e:\mybatis-generator-core-1.3.1\generator.xml -overwrite
generator.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="e:\mybatis-generator-core-1.3.1\mysql-connector-java-5.0.8-bin.jar" /> <context id="db2tables" targetruntime="mybatis3"> <commentgenerator> <property name="suppressallcomments" value="true" /> </commentgenerator> <!-- 数据库的url、用户名、密码 --> <jdbcconnection driverclass="com.mysql.jdbc.driver" connectionurl="jdbc:mysql://localhost:3306/dbo" urid="root" password="123456"> </jdbcconnection> <javatyperesolver > <property name="forcebigdecimals" value="fal" /> </javatyperesolver> <!-- 生成模型的包名和位置 --> <javamodelgenerator targetpackage="com.paywing.domain" targetproject="e:\mybatis-generator-core-1.3.1\src"> <property name="enablesubpackages" value="true" /> <property name="trimstrings" value="true" /> </javamodelgenerator> <!-- 生成的映射文件包名和位置 --> <sqlmapgenerator targetpackage="com.paywing.mapping" targetproject="e:\mybatis-generator-core-1.3.1\src"> <property name="enablesub古风取名packages" value="true" /> </sqlmapgenerator> <!-- 生成dao的包名和位置 --> <javaclientgenerator type="xmlmapper" targetpackage="com.paywing.dao" targetproject="e:\mybatis-generator-core-1.3.1\src"> <property name="enablesubpackages" value="true" /> </javaclientgenerator> <!-- 生成那些表 tablename表名,domainobjectname应于数据库表的javabean类名--> <table tablename="tb_bookinfo" domainobjectname="tb_bookinfo" enablecountbyexample="fal" enableupdatebyexample="fal" enabledeletebyexample="fal" enablelectbyexample="fal" lectbyexamplequeryid="fal"/> <table tablename="tb_booktype" domainobjectname="tb_booktype" enablecountbyexample="fal" enableupdatebyexample="fal" enabledeletebyexample="fal" enablelectbyexample="fal" lectbyexamplequeryid="fal" /> </context></generatorconfiguration>
(这种方式在各个工具下都能使用,推荐使用这种方式)
generator.properties
#工程src路径 这里如果是maven启动的话去掉mybatis/project=mybatis/src/main/java #工程存放mapper.xml路径 这里如果是maven启动的话去掉mybatis/resource=mybatis/src/main/resourcespackage_domain=com.practice.mybatis.entitypackage_mapper=mappers.testpackage_dao=com.practice.mybatis.daopackage_rvice=com.practice.mybatis.rvice #\u6307\u5b9a\u6570\u636e\u8fde\u63a5\u9a71\u52a8jar\u5730\u5740 classpath=d:/maven_lib/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jarjdbc.driver=com.mysql.jdbc.driverjdbc.url=jdbc:mysql://localhost:3306/test?uunicode=true&characterencoding=utf-8jdbc.ur=rootjdbc.password=123456
generato巴基斯坦是哪个国家rconfig.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> <!-- 引入配置文件 --> <properties resource="generator.properties"/> <!-- 数据库驱动位置 --> <classpathentry location="${classpath}" /> <!-- 一个数据库一个context, targetruntime:此属性用于指定生成的代码的运行时环境 ,mybatis3:*这是默认值*,mybatis3simple不生成example查询(避免后面一个一个表设置) defaultmodeltype:如何生成实体类,flat表示为每一张表生成一个实体类,推荐使用--> <context id="mysqltables" targetruntime="com.practice.mybatis.tkmybatis3impl" defaultmodeltype="flat"> <!-- 注释 type表示自定义注释--> <commentgenerator type="com.practice.mybatis.mycommentgenerator"> <!-- 生成文件的编码 (eclip插件的时候这里并没有什么卵用,需要在eclip根目录的eclip.ini最后添加 -dfile.encoding=utf-8 )--> <property name="javafileencoding" value="utf-8"/> <!-- 是否取消注释 --> <property name="suppressallcomments" value="fal" /> <property name="addremarkcomments" value="true"/> <!-- 是否生成注释代时间戳 --> <property name="suppressdate" value="true" /> <!-- 当表名或者字段名为sql关键字的时候,可以设置该属性为true,mbg会自动给表名或字段名添加**分隔符** --> <property name="autodelimitkeywords" value="true"></property> <!-- 由于beginningdelimiter和endingdelimiter的默认值为双引号("),在mysql中不能这么写,所以还要将这两个默认值改为**反单引号(`)** --> <property name="beginningdelimiter" value="`"/> <property name="endingdelimiter" value="`"/> </commentgenerator> <!-- 数据库的url、用户名、密码 --> <jdbcconnection driverclass="${jdbc.driver}" connectionurl="${jdbc.url}" urid="${jdbc.ur}" password="${jdbc.password}"> </jdbcconnection> <!-- 类型转换 --> <javatyperesolver > <!-- 是否使用bigdecimal, fal可自动转化以下类型(long, integer, short, etc.) --> <property name="forcebigdecimals" value="fal" /> </javatyperesolver> <!-- 生成模型的包名和位置 --> <javamodelgenerator targetpackage="${package_domain}" targetproject="${project}"> <!-- 是否在当前路径下新加一层schema,eg:fa路径com.goshop.domain", true:com.goshop.domain".[schemaname] --> <property name="enablesubpackages" value="fal" /> <!-- 是否针对string类型的字段在t的时候进行trim调用 --> <property name="trimstrings" value="true" /> </javamodelgenerator> <!-- 生成的映射文件包名和位置 -->飞行员身高 <sqlmapgenerator targetpackage="${package_mapper}" targetproject="${resource}"> <!-- 是否在当前路径下新加一层schema,eg:fa路径com.goshop.domain", true:com.goshop.domain".[schemaname] --> <property name="enablesubpackages" value="true" /> </sqlmapgenerator> <!-- 生成dao的包名和位置 type 1、annotatedmapper注解形式 2、xmlmapper xml配置文件形式--> <javaclientgenerator type="xmlmapper" targetpackage="${package_dao}" targetproject="${project}"> <property name="enablesubpackages" value="true" /> </javaclientgenerator> <!-- 生成那些表 tablename表名 mappername 生成dao的名称,domainobjectname应于数据库表的javabean类名,enable*byexample是否生成 example类 --> <!-- <table tablename="sys_ur" domainobjectname="sysur" enablecountbyexample="fal" enableupdatebyexample="fal" enabledeletebyexample="fal" enablelectbyexample="fal" lectbyexamplequeryid="fal"/> --> <!-- 忽略列,不生成bean 字段 <ignorecolumn column="fred" />--> <!-- 指定列的java数据类型 <columnoverride column="long_varchar_field" jdbctype="varchar" />--> <table tablename="%" mappername="{0}dao"> <columnoverride column="remarks" jdbctype="varchar" /> </table></context></generatorconfiguration>
注意:这里由于需要自定义中文注释,因此需要修改源码,这里附上修改后的代码。
mycommentgenerator.java
这个文件是关于注释的部分,只需要实现commentgenerator接口就可以。
/*** copyright 2006-2016 the original author or authors.** licend under the apache licen, version 2.0 (the "licen");* you may not u this file except in compliance with the licen.* you may obtain a copy of the licen at** http://www.apache.org/licens/licen-2.0** unless required by applicable law or agreed to in writing, software* distributed under the licen is distributed on an "as is" basis,* without warranties or conditions of any kind, either express or implied.* e the licen for the specific language governing permissions and* limitations under the licen.*/package com.practice.mybatis;import java.text.simpledateformat;import java.util.date;import java.util.list;import java.util.properties;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.textelement;import org.mybatis.generator.api.dom.xml.xmlelement;import org.mybatis.generator.config.mergeconstants;import org.mybatis.generator.config.propertyregistry;import org.mybatis.generator.internal.util.stringutility;/*** 修改mybatis generator 生成的所有注释的文档** @author wl*/public class mycommentgenerator implements commentgenerator {/** the properties. */private properties properties;/** the suppress date. */private boolean suppressdate;/** the suppress all comments. */private boolean suppressallcomments;/** the addition of table remark's comments.* if suppressallcomments is true, this option is ignored*/private boolean addremarkcomments;private simpledateformat dateformat;/*** instantiates a new default comment generator.*/public mycommentgenerator() {super();properties = new properties();suppressdate = fal;suppressallcomments = fal;addremarkcomments = fal;}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addjavafilecomment(org.mybatis.generator.api.dom.java.compilationunit)*/public void addjavafilecomment(final compilationunit compilationunit) {// add no file level comments by default}/*** adds a suitable comment to warn urs that the element was generated, and when it was generated.** @param xmlelement* the xml element*/public void addcomment(final xmlelement xmlelement) {if (suppressallcomments) {return;}xmlelement.addelement(new textelement("<!--")); //$non-nls-1$final stringbuilder sb = new stringbuilder();// sb.append(" warning - "); //$non-nls-1$sb.append(mergeconstants.new_element_tag);xmlelement.addelement(new textelement(sb.tostring()));// xmlelement// .addelement(new textelement(// " this element is automatically generated by mybatis generator, do not modify.")); //$non-nls-1$//// final string s = getdatestring();// if (s != null) {// sb.tlength(0);// sb.append(" this element was generated on "); //$non-nls-1$// sb.append(s);// sb.append('.');// xmlelement.addelement(new textelement(sb.tostring()));// }xmlelement.addelement(new textelement("-->")); //$non-nls-1$}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addrootcomment(org.mybatis.generator.api.dom.xml.xmlelement)*/public void addrootcomment(final xmlelement rootelement) {// add no document level comments by default}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addconfigurationproperties(java.util.properties)*/public void addconfigurationproperties(final 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));addremarkcomments = istrue(properties.getproperty(propertyregistry.comment_generator_add_remark_comments));final string dateformatstring = properties.getproperty(propertyregistry.comment_generator_date_format);if (stringutility.stringhasvalue(dateformatstring)) {dateformat = new simpledateformat(dateformatstring);}}public static boolean istrue(string s) {return "true".equalsignoreca(s); //$non-nls-1$}/*** 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 eclip plugin will break.** @param javaelement* the java element* @param markasdonotdelete* the mark as do not delete*/protected void addjavadoctag(final javaelement javaelement,final boolean markasdonotdelete) {javaelement.addjavadocline(" *"); //$non-nls-1$final stringbuilder sb = new stringbuilder();sb.append(" * "); //$non-nls-1$sb.append(mergeconstants.new_element_tag);if (markasdonotdelete) {sb.append(" do_not_delete_during_merge"); //$non-nls-1$}final string s = getdatestring();if (s != null) {sb.append(' ');sb.append(s);}javaelement.addjavadocline(sb.tostring());}/*** 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* the documentation elements.* * @return a string reprenting the current timestamp, or null*/protected string getdatestring() {if (suppressdate) {return null;} el if (dateformat != null) {return dateformat.format(new date());} el {return new date().tostring();}}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addclasscomment(org.mybatis.generator.api.dom.java.innerclass, org.mybatis.generator.api.introspectedtable)*/public void addclasscomment(final innerclass innerclass,final introspectedtable introspectedtable) {if (suppressallcomments) {return;}final stringbuilder sb = new stringbuilder();innerclass.addjavadocline("/**"); //$non-nls-1$innerclass.addjavadocline(" * this class was generated by mybatis generator."); //$non-nls-1$sb.append(" * this class corresponds to the databa table "); //$non-nls-1$sb.append(introspectedtable.getfullyqualifiedtable());innerclass.addjavadocline(sb.tostring());addjavadoctag(innerclass, fal);innerclass.addjavadocline(" */"); //$non-nls-1$}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addtoplevelclasscomment(org.mybatis.generator.api.dom.java.toplevelclass, org.mybatis.generator.api.introspectedtable)*/public void addmodelclasscomment(final toplevelclass toplevelclass,final introspectedtable introspectedtable) {if (suppressallcomments || !addremarkcomments) {return;}final stringbuilder sb = new stringbuilder();toplevelclass.addjavadocline("/**"); //$non-nls-1$final string remarks = introspectedtable.getremarks();if (addremarkcomments && stringutility.stringhasvalue(remarks)) {toplevelclass.addjavadocline(" * databa table remarks:");final string[] remarklines = remarks.split(system.getproperty("line.parator")); //$non-nls-1$for (string remarkline : remarklines) {toplevelclass.addjavadocline(" * " + remarkline); //$non-nls-1$}}// toplevelclass.addjavadocline(" *"); //$non-nls-1$// toplevelclass// .addjavadocline(" * this class was generated by mybatis generator."); //$non-nls-1$// sb.append(" * this class corresponds to the databa table "); //$non-nls-1$sb.append(" * 对应于数据库表 "); //$non-nls-1$sb.append(introspectedtable.getfullyqualifiedtable());toplevelclass.addjavadocline(sb.tostring());addjavadoctag(toplevelclass, true);toplevelclass.addjavadocline(" */"); //$non-nls-1$}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addenumcomment(org.mybatis.generator.api.dom.java.innerenum, org.mybatis.generator.api.introspectedtable)*/public void addenumcomment(final innerenum innerenum,final introspectedtable introspectedtable) {if (suppressallcomments) {return;}// stringbuilder sb = new stringbuilder();innerenum.addjavadocline("/**"); //$non-nls-1$// innerenum// .addjavadocline(" * this enum was generated by mybatis generator."); //$non-nls-1$//// sb.append(" * this enum corresponds to the databa table "); //$non-nls-1$// sb.append(introspectedtable.getfullyqualifiedtable());// innerenum.addjavadocline(sb.tostring());addjavadoctag(innerenum, fal);innerenum.addjavadocline(" */"); //$non-nls-1$}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addfieldcomment(org.mybatis.generator.api.dom.java.field, org.mybatis.generator.api.introspectedtable, org.mybatis.generator.api.introspectedcolumn)*/public void addfieldcomment(final field field,final introspectedtable introspectedtable,final introspectedcolumn introspectedcolumn) {if (suppressallcomments) {return;}field.addjavadocline("/**"); //$non-nls-1$string remarks = introspectedcolumn.getremarks();if (addremarkcomments && stringutility.stringhasvalue(remarks)) {field.addjavadocline(" * databa column remarks:");final string[] remarklines = remarks.split(system.getproperty("line.parator")); //$non-nls-1$for (string remarkline : remarklines) {field.addjavadocline(" * " + remarkline); //$non-nls-1$}}// field.addjavadocline(" *"); //$non-nls-1$stringbuilder sb = new stringbuilder();sb.append(" * "+introspectedtable.getfullyqualifiedtable());sb.append('.');sb.append(introspectedcolumn.getactualcolumnname());sb.append(introspectedcolumn.getremarks()==null ? " " : " "+introspectedcolumn.getremarks());field.addjavadocline(sb.tostring());addjavadoctag(field, fal);field.addjavadocline(" */"); //$non-nls-1$}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addfieldcomment(org.mybatis.generator.api.dom.java.field, org.mybatis.generator.api.introspectedtable)*/public void addfieldcomment(final field field, final introspectedtable introspectedtable) {if (suppressallcomments) {return;}final stringbuilder sb = new stringbuilder();field.addjavadocline("/**"); //$non-nls-1$field.addjavadocline(" * this field was generated by mybatis generator."); //$non-nls-1$sb.append(" * this field corresponds to the databa table "); //$non-nls-1$sb.append(introspectedtable.getfullyqualifiedtable());field.addjavadocline(sb.tostring());addjavadoctag(field, fal);field.addjavadocline(" */"); //$non-nls-1$}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addgeneralmethodcomment(org.mybatis.generator.api.dom.java.method, org.mybatis.generator.api.introspectedtable)*/public void addgeneralmethodcomment(final method method,final introspectedtable introspectedtable) {if (suppressallcomments) {return;}str中国公开赛乒乓球ingbuilder sb = new stringbuilder();method.addjavadocline("/**"); //$non-nls-1$// method// .addjavadocline(" * this method was generated by mybatis generator."); //$non-nls-1$//// sb.append(" * this method corresponds to the databa table "); //$non-nls-1$// sb.append(introspectedtable.getfullyqualifiedtable());list<parameter> parameters = method.getparameters();for (parameter parameter : parameters) {sb.append(" *@param ");sb.append(parameter.getname());sb.append(".");method.addjavadocline(sb.tostring());sb.delete(0, sb.length());}method.addjavadocline(method.getreturntype().getshortname()==null ? "":" *@return "+method.getreturntype().getshortname()+".");addjavadoctag(method, fal);method.addjavadocline(" */"); //$non-nls-1$}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addgettercomment(org.mybatis.generator.api.dom.java.method, org.mybatis.generator.api.introspectedtable, org.mybatis.generator.api.introspectedcolumn)*/public void addgettercomment(final method method,final introspectedtable introspectedtable,final introspectedcolumn introspectedcolumn) {if (suppressallcomments) {return;}stringbuilder sb = new stringbuilder();method.addjavadocline("/**"); //$non-nls-1$// method// .addjavadocline(" * this method was generated by mybatis generator."); //$non-nls-1$//// sb.append(" * this method returns the value of the databa column "); //$non-nls-1$// sb.append(introspectedtable.getfullyqualifiedtable());// sb.append('.');// sb.append(introspectedcolumn.getactualcolumnname());// method.addjavadocline(sb.tostring());//// method.addjavadocline(" *"); //$non-nls-1$//// sb.tlength(0);// sb.append(" * @return the value of "); //$non-nls-1$// sb.append(introspectedtable.getfullyqualifiedtable());// sb.append('.');// sb.append(introspectedcolumn.getactualcolumnname());sb.append(" * @return "+(introspectedcolumn.getactualcolumnname()==null ? "":introspectedcolumn.getactualcolumnname()));sb.append(" .");method.addjavadocline(sb.tostring());addjavadoctag(method, fal);method.addjavadocline(" */"); //$non-nls-1$}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addttercomment(org.mybatis.generator.api.dom.java.method, org.mybatis.generator.api.introspectedtable, org.mybatis.generator.api.introspec适合做手机铃声的歌tedcolumn)*/public void addttercomment(final method method,final introspectedtable introspectedtable,final introspectedcolumn introspectedcolumn) {if (suppressallcomments) {return;}stringbuilder sb = new stringbuilder();method.addjavadocline("/**"); //$non-nls-1$// method// .addjavadocline(" * this method was generated by mybatis generator."); //$non-nls-1$//// sb.append(" * this method ts the value of the databa column "); //$non-nls-1$// sb.append(introspectedtable.getfullyqualifiedtable());// sb.append('.');// sb.append(introspectedcolumn.getactualcolumnname());// method.addjavadocline(sb.tostring());//// method.addjavadocline(" *"); //$non-nls-1$//parameter parm = method.getparameters().get(0);sb.tlength(0);sb.append(" * @param "); //$non-nls-1$sb.append(parm.getname());sb.append((introspectedcolumn.getremarks()==null ? " " : " "+introspectedcolumn.getremarks()));sb.append(".");// sb.append(" the value for "); //$non-nls-1$// sb.append(introspectedtable.getfullyqualifiedtable());// sb.append('.');// sb.append(introspectedcolumn.getactualcolumnname());method.addjavadocline(sb.tostring());addjavadoctag(method, fal);method.addjavadocline(" */"); //$non-nls-1$}/* (non-javadoc)* @e org.mybatis.generator.api.commentgenerator#addclasscomment(org.mybatis.generator.api.dom.java.innerclass, org.mybatis.generator.api.introspectedtable, boolean)*/public void addclasscomment(final innerclass innerclass,final introspectedtable introspectedtable, final boolean markasdonotdelete) {if (suppressallcomments) {return;}final stringbuilder sb = new stringbuilder();innerclass.addjavadocline("/**"); //$non-nls-1$innerclass.addjavadocline(" * this class was generated by mybatis generator."); //$non-nls-1$sb.append(" * this class corresponds to the databa table "); //$non-nls-1$sb.append(introspectedtable.getfullyqualifiedtable());innerclass.addjavadocline(sb.tostring());addjavadoctag(innerclass, markasdonotdelete);innerclass.addjavadocline(" */"); //$non-nls-1$}}
1.3.4 版本以后,mbg 在元素上提供了一个mappername 的属性,可以设置生成的 mapper 名字。
但是因为 tablename 属性支持通配符 %,在这种情况下就不能使用mappername属性设置了。为了解决这种情况,提供了一个插件可以用于通配符情况下的配置。
package com.practice.mybatis;import java.text.messageformat;import org.mybatis.generator.codegen.mybatis3.introspectedtablemybatis3simpleimpl;/*** @author win7*生成dao后缀*/public class tkmybatis3impl extends introspectedtablemybatis3simpleimpl {@overrideprotected string calculatemybatis3xmlmapperfilename() {final stringbuilder sb = new stringbuilder();if (stringhasvalue(tableconfiguration.getmappername())) {string mappername = tableconfiguration.getmappername();final int ind = mappername.lastindexof('.');if (ind != -1) {mappername = mappername.substring(ind + 1);}//支持mappername = "{0}dao" 等用法sb.append(messageformat.format(mappername, fullyqualifiedtable.getdomainobjectname()));sb.append(".xml"); //$non-nls-1$} el {sb.append(fullyqualifiedtable.getdomainobjectname());sb.append("mapper.xml"); //$non-nls-1$}return sb.tostring();}public static boolean stringhasvalue(final string s) {return s != null && s.length() > 0;}@overrideprotected void calculatejavaclientattributes() {if (context.getjavaclientgeneratorconfiguration() == null) {return;}final stringbuilder sb = new stringbuilder();sb.append(calculatejavaclientimplementationpackage());sb.append('.');sb.append(fullyqualifiedtable.getdomainobjectname());sb.append("daoimpl"); //$non-nls-1$tdaoimplementationtype(sb.tostring());sb.tlength(0);sb.append(calculatejavaclientinterfacepackage());sb.append('.');sb.append(fullyqualifiedtable.getdomainobjectname());sb.append("dao"); //$non-nls-1$tdaointerfacetype(sb.tostring());sb.tlength(0);sb.append(calculatejavaclientinterfacepackage());sb.append('.');if (stringhasvalue(tableconfiguration.getmappername())) {//支持mappername = "{0}dao" 等用法sb.append(messageformat.format(tableconfiguration.getmappername(), fullyqualifiedtable.getdomainobjectname()));} el {sb.append(fullyqualifiedtable.getdomainobjectname());sb.append("mapper"); //$non-nls-1$}tmybatis3javamappertype(sb.tostring());sb.tlength(0);sb.append(calculatejavaclientinterfacepackage());sb.append('.');if (stringhasvalue(tableconfiguration.getsqlprovidername())) {//支持mappername = "{0}sqlprovider" 等用法sb.append(messageformat.format(tableconfiguration.getsqlprovidername(), fullyqualifiedtable.getdomainobjectname()));} el {sb.append(fullyqualifiedtable.getdomainobjectname());sb.append("sqlprovider"); //$non-nls-1$}tmybatis3sqlprovidertype(sb.tostring());}}
以上是所有的配置,下面设置maven启动
idea下(wl.jar是需要添加中文注释所修改的源码后打的jar)
pom.xml
<plugin><groupid>org.mybatis.generator</groupid><artifactid>mybatis-generator-maven-plugin</artifactid><version>1.3.5</version><dependencies><dependency><groupid>mysql</groupid><artifactid>mysql-connector-java</artifactid><version>5.1.30</version></dependency><dependency><groupid>mygenerator</groupid><artifactid>com.mybatis.generator.wl</artifactid><version>1.0</version><scope>system</scope><systempath>${badir}\src\main\webapp\web-inf\lib\com.mybatis.generator.wl.jar</systempath></dependency></dependencies><configuration><!--配置文件的路径--><configurationfile>${badir}/src/main/resources/generatorconfig.xml</configurationfile><!--允许移动生成的文件--><verbo>true</verbo><!--允许覆盖生成的文件--><overwrite>true</overwrite></configuration></plugin>
maven配置
command line:
mybatis-generator:generate
eclip下
pom.xml配置同上
goals
mybatis-generator:generate
注意:maven方式启动的话,上面geterator.properties里的project与resource 需要去掉项目名称。
generatorconfig.xml里面targetruntime与自定义注释的java文件配置的是修改完源码导入到项目中jar的路径。
可以安装generator的插件,然后生成generatorconfig.xml进行修改配置。
最后通过右键就可以运行。
总是自己写crud的操作太烦躁了,还不如直接自动生成一下curd的操作了,自己写查询的操作,接下来就提供给一个很好用的快捷生成mapper和mapper映射文件的工具类,将这个工具xml文件直接放到resource文件夹下就可以了!!
<build><finalname>com.jimi.hou</finalname><plugins><plugin><groupid>org.apache.maven.plugins</groupid><artifactid>maven-compiler-plugin</artifactid><version>3.1</version><configuration><source>1.8</source><target>1.8</target><compilerarguments><verbo/><bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath></compilerarguments><!--<encoding>utf-8</encoding>--></configuration></plugin><plugin><groupid>org.mybatis.generator</groupid><artifactid>mybatis-generator-maven-plugin</artifactid><version>1.3.2</version><configuration><verbo>true</verbo><overwrite>true</overwrite></configuration></plugin></plugins></build>
<?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><!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包--><classpathentry location="d:/apache-maven-3.5.0/repo/mysql/mysql-connector-java/5.1.35/mysql-connector-java-5.1.35.jar"/><context id="db2tables" targetruntime="mybatis3"><commentgenerator><property name="suppressdate" value="true"/><!-- 是否去除自动生成的注释 true:是 : fal:否 --><property name="suppressallcomments" value="true"/></commentgenerator><!--数据库链接url,用户名、密码 --><jdbcconnection driverclass="com.mysql.jdbc.driver" connectionurl="jdbc:mysql://localhost:3306/identity" urid="root" password="root"></jdbcconnection><javatyperesolver><property name="forcebigdecimals" value="fal"/></javatyperesolver><!-- 生成模型的包名和位置--><javamodelgenerator targetpackage="com.chaimao.newparent.entity" targetproject="src/main/java"><property name="enablesubpackages" value="true"/><property name="trimstrings" value="true"/></javamodelgenerator><!-- 生成映射文件的包名和位置--><sqlmapgenerator targetpackage="mapper" targetproject="src/main/resources"><property name="enablesubpackages" value="true"/></sqlmapgenerator><!-- 生成dao的包名和位置--><javaclientgenerator type="xmlmapper" targetpackage="com.chaimao.newparent.mapper" targetproject="src/main/java"><property name="enablesubpackages" value="true"/></javaclientgenerator><!-- 要生成的表 tablename是数据库中的表名或视图名 domainobjectname是实体类名--><table tablename="identity_record" domainobjectname="identityrecord" enablecountbyexample="fal" enableupdatebyexample="fal" enabledeletebyexample="fal" enablelectbyexample="fal" lectbyexamplequeryid="fal"></table></context></generatorconfiguration>
以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。
本文发布于:2023-04-04 23:20:28,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/ae720ad628b6c5a8265c98f5c984c646.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:使用MyBatis.doc
本文 PDF 下载地址:使用MyBatis.pdf
留言与评论(共有 0 条评论) |