Eclipse MyBatis Generator自动生成代码实体类及mapper.xml

MyBatis Generator插件安装

1、打开Eclipse,按照【Help】 -> 【Eclipse Marketplace...】打开选项;

2、搜索输入MyBatis Generator,点击【Go】,如下图,然后点击右下角的【Install】(如果已经安装,则会出现如下图的两个按钮【Update】【UnInstall】)即开始安装,安装完成后重启Eclipse。

Eclipse MyBatis Generator自动生成代码实体类及mapper.xml_第1张图片

3、验证是否安装成功:

打开Eclipse,【File】 -> 【New】->【Other..】,打开页面,出现【MyBatis】->【MyBatis Genetator Configuration File】选项既为安装成功:

Eclipse MyBatis Generator自动生成代码实体类及mapper.xml_第2张图片


generatorConfig.xml配置

1、创建generatorConfig.xml文件

在根目录下右键New -> MyBatis -> MyBatis Generator Configuration File 即可创建generatorConfig.xml文件




 
   
   
   
   
   
     
   

 

2、修改后的generatorConfig.xml文件

    
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"    
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">    
    
    
      
    
 
          
       
       
       
        
       
           
       
           
           
       
        
       
                    connectionURL="jdbc:mysql://localhost:3306/test"    
            userId="root"    
            password="root">
            
                
       

           
    
       
            
              
       
    
        
        
       
           
           

           
           

           
           

           
           

           
           
       

        
        
       
             
       

        
       
       
           
           

           
           
           
           
               
               
               
            
                
               
                
               
                
               
                
                 
                 
                     
                   
                           
                         
                           
                           
                           
                           
               
               
 
      
    

注意:generatorConfig.xml中的标签可以简单写成:
    

其中的属性是控制Mapper中是否生成的SQL语句。
常用的属性如下:
1,alias:为数据表设置的别名,如果设置了alias,那么生成的所有的SELECT SQL语句中,列名会变成:alias_actualColumnName
 2,domainObjectName:生成的domain类的名字,如果不设置,直接使用表名作为domain类的名字;可以设置为somepck.domainName,那么会自动把domainName类再放到somepck包里面;
3,enableInsert(默认true):指定是否生成insert语句;
4,enableSelectByPrimaryKey(默认true):指定是否生成按照主键查询对象的语句(就是getById或get);
5,enableSelectByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询语句;
6,enableUpdateByPrimaryKey(默认true):指定是否生成按照主键修改对象的语句(即update);
7,enableDeleteByPrimaryKey(默认true):指定是否生成按照主键删除对象的语句(即delete);
8,enableDeleteByExample(默认true):MyBatis3Simple为false,指定是否生成动态删除语句;
9,enableCountByExample(默认true):MyBatis3Simple为false,指定是否生成动态查询总条数语句(用于分页的总条数查询);
10,enableUpdateByExample(默认true):MyBatis3Simple为false,指定是否生成动态修改语句(只修改对象中不为空的属性);

生成实体类及mapper文件

选中generatorConfig.xml文件,右键 ->Generate MyBatis/iBATIS Artifacts 点击执行即可完成。


ps:重写生成注释的类:

解决生成的注释为英文的问题,重写之后,生成的注释为中文

pom.xml中引入jar包:


            org.mybatis.generator
            mybatis-generator-core
            1.3.2
            jar
            provided


com.flight.manager.mybatis.generator.MyCommentGenerator

generatorConfig.xml文件引用处见commentGenerator属性

package com.flight.manager;

import java.text.SimpleDateFormat;
import java.util.Date;
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.Field;
import org.mybatis.generator.api.dom.java.InnerClass;
import org.mybatis.generator.api.dom.java.InnerEnum;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.Parameter;
import org.mybatis.generator.internal.DefaultCommentGenerator;

/**
 * mybatis generator 自定义comment生成器.
 * 基于MBG 1.3.2.
 *
 */
public class MyCommentGenerator extends DefaultCommentGenerator 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());
    }
    
    
    @Override
    public void addFieldComment(Field field,
            IntrospectedTable introspectedTable,
            IntrospectedColumn introspectedColumn) {
        // 添加字段注释
        StringBuffer sb = new StringBuffer();
        field.addJavaDocLine("/**");
        if (introspectedColumn.getRemarks() != null)
        field.addJavaDocLine(" * " + introspectedColumn.getRemarks());
        sb.append(" * 表字段 : ");
        sb.append(introspectedTable.getFullyQualifiedTable());
        sb.append('.');
        sb.append(introspectedColumn.getActualColumnName());
        field.addJavaDocLine(sb.toString());
        field.addJavaDocLine(" * ");
        field.addJavaDocLine(" */");
        
        //添加注解
        /* @Column(name = "air_ways")
         * 生成的实体类中没有引入Column类会报错,直接引入就可以了
        StringBuffer sb1 = new StringBuffer();
        sb1.append("@Column(name = ");
        sb1.append("\"");
        sb1.append(introspectedColumn.getActualColumnName());
        sb1.append("\"");
        sb1.append(")");
        field.addJavaDocLine(sb1.toString());
        */
    }

    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());
        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());
        innerEnum.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());
        field.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());
    
        sb.setLength(0);
        sb.append(" * @return ");
        sb.append(introspectedColumn.getActualColumnName());
        sb.append(" ");
        sb.append(introspectedColumn.getRemarks());
        method.addJavaDocLine(sb.toString());
    
        //      addJavadocTag(method, false);
    
        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());
    
        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());
    
        //      addJavadocTag(method, false);
    
        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());
    
        sb.setLength(0);
        sb.append(" * @author ");
        sb.append(systemPro.getProperty("user.name"));
        sb.append(" ");
        sb.append(currentDateStr);
    
        innerClass.addJavaDocLine(" */");
    }

}




你可能感兴趣的:(MyBatis)