• MyBatis学习总结(9)——使用MyBatis Generator自动创建代码


    一、构建一个环境


    1. 首先创建一个表:

    1. CREATE TABLE  
    2.     t_user  
    3.     (  
    4.         USER_ID INT NOT NULL AUTO_INCREMENT,  
    5.         USER_NAME CHAR(30) NOT NULL,  
    6.         USER_PASSWORD CHAR(10) NOT NULL,  
    7.         USER_EMAIL CHAR(30) NOT NULL,  
    8.         PRIMARY KEY (USER_ID)  
    9.     )  
    10.     ENGINE=InnoDB DEFAULT CHARSET=utf8;  

    2. 在 Mybatis 主页 http://code.google.com/p/mybatis/ 上下载 Mybatis mybatis-generator-core 或者在这里下载:http://download.csdn.net/detail/evankaka/8926999

    二、xml文件编写

    1、新建一个工程。然后新建如下包,都是空的


    2、然后新建generator.xmll文件

    内容如下:

    [html] view plaincopy
    1. <?xml version="1.0" encoding="UTF-8"?>    
    2. <!DOCTYPE generatorConfiguration    
    3.   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"    
    4.   "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">  
    5.   
    6. <generatorConfiguration>  
    7.     <!-- classPathEntry:数据库的JDBC驱动的jar包地址 -->  
    8.     <classPathEntry location="D:JavaJarmysql-connector-java-5.1.22mysql-connector-java-5.1.22-bin.jar" />  
    9.     <context id="DB2Tables" targetRuntime="MyBatis3">  
    10.         <commentGenerator>  
    11.         <!-- 抑制警告 -->  
    12.         <property name="suppressTypeWarnings" value="true" />  
    13.         <!-- 是否去除自动生成的注释 true:是 : false:否 -->  
    14.         <property name="suppressAllComments" value="false" />  
    15.         <!-- 是否生成注释代时间戳-->    
    16.         <property name="suppressDate" value="true" />   
    17.         </commentGenerator>  
    18.   
    19.         <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->  
    20.         <jdbcConnection driverClass="com.mysql.jdbc.Driver"  
    21.             connectionURL="jdbc:mysql://localhost/learning" userId="root"  
    22.             password="christmas258@">  
    23.         </jdbcConnection>  
    24.         <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和   
    25.             NUMERIC 类型解析为java.math.BigDecimal -->  
    26.     <!--     <javaTypeResolver>  
    27.             <property name="forceBigDecimals" value="false" />  
    28.         </javaTypeResolver> -->  
    29.         <!--生成Model类存放位置 -->  
    30.         <javaModelGenerator targetPackage="com.lin.domain"  
    31.             targetProject="D:lunaJee-workspaceMyBatisLearningChapter7src">  
    32.              <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->    
    33.             <property name="enableSubPackages" value="false" />  
    34.              <!-- 是否针对string类型的字段在set的时候进行trim调用 -->    
    35.             <property name="trimStrings" value="true" />  
    36.         </javaModelGenerator>  
    37.         <!--生成映射文件存放位置 -->  
    38.         <sqlMapGenerator targetPackage="com.lin.mapper"  
    39.             targetProject="D:lunaJee-workspaceMyBatisLearningChapter7src">  
    40.             <property name="enableSubPackages" value="true" />  
    41.         </sqlMapGenerator>  
    42.         <!--生成Dao类存放位置 -->  
    43.         <javaClientGenerator type="XMLMAPPER"  
    44.             targetPackage="com.lin.dao" targetProject="D:lunaJee-workspaceMyBatisLearningChapter7src">  
    45.             <property name="enableSubPackages" value="true" />  
    46.         </javaClientGenerator>  
    47.           
    48.   
    49.         <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->    
    50.         <table schema="general" tableName="T_USER" domainObjectName="User">  
    51.          <!--domain字段的命名规则,false:默认为驼峰命名 true:按数据库真实命名  -->  
    52.         <property name="useActualColumnNames" value="false"/>  
    53.         <!-- 忽略列,不生成bean 字段 -->    
    54.         <!--     <ignoreColumn column="FRED" />   -->  
    55.         <!-- 指定列的java数据类型 -->    
    56.         <!--     <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />   -->  
    57.         </table>  
    58.     </context>  
    59. </generatorConfiguration>  

    三、自动代码生成

    自动代码生成有4种方法

    1、直接cmd下命令行生成

    命令如下:java -jar 电脑上mybatis-generator-core-1.3.0.jar的绝对路径  -configfile 电脑上generator.xml的绝对路径,这里的generator.xml不一定要放在工程的src文件中。

    如我的这个项目就是:

    运行的结果如下:

    然后在eclipse中刷新一下:结果出来了


    看看各个文件

    (1)User.java

    [java] view plaincopy
    1. package com.lin.domain;  
    2.   
    3. public class User {  
    4.     /** 
    5.      * This field was generated by MyBatis Generator. 
    6.      * This field corresponds to the database column t_user.USER_ID 
    7.      * 
    8.      * @mbggenerated 
    9.      */  
    10.     private Integer userId;  
    11.   
    12.     /** 
    13.      * This field was generated by MyBatis Generator. 
    14.      * This field corresponds to the database column t_user.USER_NAME 
    15.      * 
    16.      * @mbggenerated 
    17.      */  
    18.     private String userName;  
    19.   
    20.     /** 
    21.      * This field was generated by MyBatis Generator. 
    22.      * This field corresponds to the database column t_user.USER_PASSWORD 
    23.      * 
    24.      * @mbggenerated 
    25.      */  
    26.     private String userPassword;  
    27.   
    28.     /** 
    29.      * This field was generated by MyBatis Generator. 
    30.      * This field corresponds to the database column t_user.USER_EMAIL 
    31.      * 
    32.      * @mbggenerated 
    33.      */  
    34.     private String userEmail;  
    35.   
    36.     /** 
    37.      * This method was generated by MyBatis Generator. 
    38.      * This method returns the value of the database column t_user.USER_ID 
    39.      * 
    40.      * @return the value of t_user.USER_ID 
    41.      * 
    42.      * @mbggenerated 
    43.      */  
    44.     public Integer getUserId() {  
    45.         return userId;  
    46.     }  
    47.   
    48.     /** 
    49.      * This method was generated by MyBatis Generator. 
    50.      * This method sets the value of the database column t_user.USER_ID 
    51.      * 
    52.      * @param userId the value for t_user.USER_ID 
    53.      * 
    54.      * @mbggenerated 
    55.      */  
    56.     public void setUserId(Integer userId) {  
    57.         this.userId = userId;  
    58.     }  
    59.   
    60.     /** 
    61.      * This method was generated by MyBatis Generator. 
    62.      * This method returns the value of the database column t_user.USER_NAME 
    63.      * 
    64.      * @return the value of t_user.USER_NAME 
    65.      * 
    66.      * @mbggenerated 
    67.      */  
    68.     public String getUserName() {  
    69.         return userName;  
    70.     }  
    71.   
    72.     /** 
    73.      * This method was generated by MyBatis Generator. 
    74.      * This method sets the value of the database column t_user.USER_NAME 
    75.      * 
    76.      * @param userName the value for t_user.USER_NAME 
    77.      * 
    78.      * @mbggenerated 
    79.      */  
    80.     public void setUserName(String userName) {  
    81.         this.userName = userName == null ? null : userName.trim();  
    82.     }  
    83.   
    84.     /** 
    85.      * This method was generated by MyBatis Generator. 
    86.      * This method returns the value of the database column t_user.USER_PASSWORD 
    87.      * 
    88.      * @return the value of t_user.USER_PASSWORD 
    89.      * 
    90.      * @mbggenerated 
    91.      */  
    92.     public String getUserPassword() {  
    93.         return userPassword;  
    94.     }  
    95.   
    96.     /** 
    97.      * This method was generated by MyBatis Generator. 
    98.      * This method sets the value of the database column t_user.USER_PASSWORD 
    99.      * 
    100.      * @param userPassword the value for t_user.USER_PASSWORD 
    101.      * 
    102.      * @mbggenerated 
    103.      */  
    104.     public void setUserPassword(String userPassword) {  
    105.         this.userPassword = userPassword == null ? null : userPassword.trim();  
    106.     }  
    107.   
    108.     /** 
    109.      * This method was generated by MyBatis Generator. 
    110.      * This method returns the value of the database column t_user.USER_EMAIL 
    111.      * 
    112.      * @return the value of t_user.USER_EMAIL 
    113.      * 
    114.      * @mbggenerated 
    115.      */  
    116.     public String getUserEmail() {  
    117.         return userEmail;  
    118.     }  
    119.   
    120.     /** 
    121.      * This method was generated by MyBatis Generator. 
    122.      * This method sets the value of the database column t_user.USER_EMAIL 
    123.      * 
    124.      * @param userEmail the value for t_user.USER_EMAIL 
    125.      * 
    126.      * @mbggenerated 
    127.      */  
    128.     public void setUserEmail(String userEmail) {  
    129.         this.userEmail = userEmail == null ? null : userEmail.trim();  
    130.     }  
    131. }  

    UserExample.java这个文件可以控制是否生成

    [java] view plaincopy
    1. package com.lin.domain;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.List;  
    5.   
    6. public class UserExample {  
    7.     /** 
    8.      * This field was generated by MyBatis Generator. 
    9.      * This field corresponds to the database table t_user 
    10.      * 
    11.      * @mbggenerated 
    12.      */  
    13.     protected String orderByClause;  
    14.   
    15.     /** 
    16.      * This field was generated by MyBatis Generator. 
    17.      * This field corresponds to the database table t_user 
    18.      * 
    19.      * @mbggenerated 
    20.      */  
    21.     protected boolean distinct;  
    22.   
    23.     /** 
    24.      * This field was generated by MyBatis Generator. 
    25.      * This field corresponds to the database table t_user 
    26.      * 
    27.      * @mbggenerated 
    28.      */  
    29.     protected List<Criteria> oredCriteria;  
    30.   
    31.     /** 
    32.      * This method was generated by MyBatis Generator. 
    33.      * This method corresponds to the database table t_user 
    34.      * 
    35.      * @mbggenerated 
    36.      */  
    37.     public UserExample() {  
    38.         oredCriteria = new ArrayList<Criteria>();  
    39.     }  
    40.   
    41.     /** 
    42.      * This method was generated by MyBatis Generator. 
    43.      * This method corresponds to the database table t_user 
    44.      * 
    45.      * @mbggenerated 
    46.      */  
    47.     public void setOrderByClause(String orderByClause) {  
    48.         this.orderByClause = orderByClause;  
    49.     }  
    50.   
    51.     /** 
    52.      * This method was generated by MyBatis Generator. 
    53.      * This method corresponds to the database table t_user 
    54.      * 
    55.      * @mbggenerated 
    56.      */  
    57.     public String getOrderByClause() {  
    58.         return orderByClause;  
    59.     }  
    60.   
    61.     /** 
    62.      * This method was generated by MyBatis Generator. 
    63.      * This method corresponds to the database table t_user 
    64.      * 
    65.      * @mbggenerated 
    66.      */  
    67.     public void setDistinct(boolean distinct) {  
    68.         this.distinct = distinct;  
    69.     }  
    70.   
    71.     /** 
    72.      * This method was generated by MyBatis Generator. 
    73.      * This method corresponds to the database table t_user 
    74.      * 
    75.      * @mbggenerated 
    76.      */  
    77.     public boolean isDistinct() {  
    78.         return distinct;  
    79.     }  
    80.   
    81.     /** 
    82.      * This method was generated by MyBatis Generator. 
    83.      * This method corresponds to the database table t_user 
    84.      * 
    85.      * @mbggenerated 
    86.      */  
    87.     public List<Criteria> getOredCriteria() {  
    88.         return oredCriteria;  
    89.     }  
    90.   
    91.     /** 
    92.      * This method was generated by MyBatis Generator. 
    93.      * This method corresponds to the database table t_user 
    94.      * 
    95.      * @mbggenerated 
    96.      */  
    97.     public void or(Criteria criteria) {  
    98.         oredCriteria.add(criteria);  
    99.     }  
    100.   
    101.     /** 
    102.      * This method was generated by MyBatis Generator. 
    103.      * This method corresponds to the database table t_user 
    104.      * 
    105.      * @mbggenerated 
    106.      */  
    107.     public Criteria or() {  
    108.         Criteria criteria = createCriteriaInternal();  
    109.         oredCriteria.add(criteria);  
    110.         return criteria;  
    111.     }  
    112.   
    113.     /** 
    114.      * This method was generated by MyBatis Generator. 
    115.      * This method corresponds to the database table t_user 
    116.      * 
    117.      * @mbggenerated 
    118.      */  
    119.     public Criteria createCriteria() {  
    120.         Criteria criteria = createCriteriaInternal();  
    121.         if (oredCriteria.size() == 0) {  
    122.             oredCriteria.add(criteria);  
    123.         }  
    124.         return criteria;  
    125.     }  
    126.   
    127.     /** 
    128.      * This method was generated by MyBatis Generator. 
    129.      * This method corresponds to the database table t_user 
    130.      * 
    131.      * @mbggenerated 
    132.      */  
    133.     protected Criteria createCriteriaInternal() {  
    134.         Criteria criteria = new Criteria();  
    135.         return criteria;  
    136.     }  
    137.   
    138.     /** 
    139.      * This method was generated by MyBatis Generator. 
    140.      * This method corresponds to the database table t_user 
    141.      * 
    142.      * @mbggenerated 
    143.      */  
    144.     public void clear() {  
    145.         oredCriteria.clear();  
    146.         orderByClause = null;  
    147.         distinct = false;  
    148.     }  
    149.   
    150.     /** 
    151.      * This class was generated by MyBatis Generator. 
    152.      * This class corresponds to the database table t_user 
    153.      * 
    154.      * @mbggenerated 
    155.      */  
    156.     protected abstract static class GeneratedCriteria {  
    157.         protected List<Criterion> criteria;  
    158.   
    159.         protected GeneratedCriteria() {  
    160.             super();  
    161.             criteria = new ArrayList<Criterion>();  
    162.         }  
    163.   
    164.         public boolean isValid() {  
    165.             return criteria.size() > 0;  
    166.         }  
    167.   
    168.         public List<Criterion> getCriteria() {  
    169.             return criteria;  
    170.         }  
    171.   
    172.         protected void addCriterion(String condition) {  
    173.             if (condition == null) {  
    174.                 throw new RuntimeException("Value for condition cannot be null");  
    175.             }  
    176.             criteria.add(new Criterion(condition));  
    177.         }  
    178.   
    179.         protected void addCriterion(String condition, Object value, String property) {  
    180.             if (value == null) {  
    181.                 throw new RuntimeException("Value for " + property + " cannot be null");  
    182.             }  
    183.             criteria.add(new Criterion(condition, value));  
    184.         }  
    185.   
    186.         protected void addCriterion(String condition, Object value1, Object value2, String property) {  
    187.             if (value1 == null || value2 == null) {  
    188.                 throw new RuntimeException("Between values for " + property + " cannot be null");  
    189.             }  
    190.             criteria.add(new Criterion(condition, value1, value2));  
    191.         }  
    192.   
    193.         public Criteria andUserIdIsNull() {  
    194.             addCriterion("USER_ID is null");  
    195.             return (Criteria) this;  
    196.         }  
    197.   
    198.         public Criteria andUserIdIsNotNull() {  
    199.             addCriterion("USER_ID is not null");  
    200.             return (Criteria) this;  
    201.         }  
    202.   
    203.         public Criteria andUserIdEqualTo(Integer value) {  
    204.             addCriterion("USER_ID =", value, "userId");  
    205.             return (Criteria) this;  
    206.         }  
    207.   
    208.         public Criteria andUserIdNotEqualTo(Integer value) {  
    209.             addCriterion("USER_ID <>", value, "userId");  
    210.             return (Criteria) this;  
    211.         }  
    212.   
    213.         public Criteria andUserIdGreaterThan(Integer value) {  
    214.             addCriterion("USER_ID >", value, "userId");  
    215.             return (Criteria) this;  
    216.         }  
    217.   
    218.         public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {  
    219.             addCriterion("USER_ID >=", value, "userId");  
    220.             return (Criteria) this;  
    221.         }  
    222.   
    223.         public Criteria andUserIdLessThan(Integer value) {  
    224.             addCriterion("USER_ID <", value, "userId");  
    225.             return (Criteria) this;  
    226.         }  
    227.   
    228.         public Criteria andUserIdLessThanOrEqualTo(Integer value) {  
    229.             addCriterion("USER_ID <=", value, "userId");  
    230.             return (Criteria) this;  
    231.         }  
    232.   
    233.         public Criteria andUserIdIn(List<Integer> values) {  
    234.             addCriterion("USER_ID in", values, "userId");  
    235.             return (Criteria) this;  
    236.         }  
    237.   
    238.         public Criteria andUserIdNotIn(List<Integer> values) {  
    239.             addCriterion("USER_ID not in", values, "userId");  
    240.             return (Criteria) this;  
    241.         }  
    242.   
    243.         public Criteria andUserIdBetween(Integer value1, Integer value2) {  
    244.             addCriterion("USER_ID between", value1, value2, "userId");  
    245.             return (Criteria) this;  
    246.         }  
    247.   
    248.         public Criteria andUserIdNotBetween(Integer value1, Integer value2) {  
    249.             addCriterion("USER_ID not between", value1, value2, "userId");  
    250.             return (Criteria) this;  
    251.         }  
    252.   
    253.         public Criteria andUserNameIsNull() {  
    254.             addCriterion("USER_NAME is null");  
    255.             return (Criteria) this;  
    256.         }  
    257.   
    258.         public Criteria andUserNameIsNotNull() {  
    259.             addCriterion("USER_NAME is not null");  
    260.             return (Criteria) this;  
    261.         }  
    262.   
    263.         public Criteria andUserNameEqualTo(String value) {  
    264.             addCriterion("USER_NAME =", value, "userName");  
    265.             return (Criteria) this;  
    266.         }  
    267.   
    268.         public Criteria andUserNameNotEqualTo(String value) {  
    269.             addCriterion("USER_NAME <>", value, "userName");  
    270.             return (Criteria) this;  
    271.         }  
    272.   
    273.         public Criteria andUserNameGreaterThan(String value) {  
    274.             addCriterion("USER_NAME >", value, "userName");  
    275.             return (Criteria) this;  
    276.         }  
    277.   
    278.         public Criteria andUserNameGreaterThanOrEqualTo(String value) {  
    279.             addCriterion("USER_NAME >=", value, "userName");  
    280.             return (Criteria) this;  
    281.         }  
    282.   
    283.         public Criteria andUserNameLessThan(String value) {  
    284.             addCriterion("USER_NAME <", value, "userName");  
    285.             return (Criteria) this;  
    286.         }  
    287.   
    288.         public Criteria andUserNameLessThanOrEqualTo(String value) {  
    289.             addCriterion("USER_NAME <=", value, "userName");  
    290.             return (Criteria) this;  
    291.         }  
    292.   
    293.         public Criteria andUserNameLike(String value) {  
    294.             addCriterion("USER_NAME like", value, "userName");  
    295.             return (Criteria) this;  
    296.         }  
    297.   
    298.         public Criteria andUserNameNotLike(String value) {  
    299.             addCriterion("USER_NAME not like", value, "userName");  
    300.             return (Criteria) this;  
    301.         }  
    302.   
    303.         public Criteria andUserNameIn(List<String> values) {  
    304.             addCriterion("USER_NAME in", values, "userName");  
    305.             return (Criteria) this;  
    306.         }  
    307.   
    308.         public Criteria andUserNameNotIn(List<String> values) {  
    309.             addCriterion("USER_NAME not in", values, "userName");  
    310.             return (Criteria) this;  
    311.         }  
    312.   
    313.         public Criteria andUserNameBetween(String value1, String value2) {  
    314.             addCriterion("USER_NAME between", value1, value2, "userName");  
    315.             return (Criteria) this;  
    316.         }  
    317.   
    318.         public Criteria andUserNameNotBetween(String value1, String value2) {  
    319.             addCriterion("USER_NAME not between", value1, value2, "userName");  
    320.             return (Criteria) this;  
    321.         }  
    322.   
    323.         public Criteria andUserPasswordIsNull() {  
    324.             addCriterion("USER_PASSWORD is null");  
    325.             return (Criteria) this;  
    326.         }  
    327.   
    328.         public Criteria andUserPasswordIsNotNull() {  
    329.             addCriterion("USER_PASSWORD is not null");  
    330.             return (Criteria) this;  
    331.         }  
    332.   
    333.         public Criteria andUserPasswordEqualTo(String value) {  
    334.             addCriterion("USER_PASSWORD =", value, "userPassword");  
    335.             return (Criteria) this;  
    336.         }  
    337.   
    338.         public Criteria andUserPasswordNotEqualTo(String value) {  
    339.             addCriterion("USER_PASSWORD <>", value, "userPassword");  
    340.             return (Criteria) this;  
    341.         }  
    342.   
    343.         public Criteria andUserPasswordGreaterThan(String value) {  
    344.             addCriterion("USER_PASSWORD >", value, "userPassword");  
    345.             return (Criteria) this;  
    346.         }  
    347.   
    348.         public Criteria andUserPasswordGreaterThanOrEqualTo(String value) {  
    349.             addCriterion("USER_PASSWORD >=", value, "userPassword");  
    350.             return (Criteria) this;  
    351.         }  
    352.   
    353.         public Criteria andUserPasswordLessThan(String value) {  
    354.             addCriterion("USER_PASSWORD <", value, "userPassword");  
    355.             return (Criteria) this;  
    356.         }  
    357.   
    358.         public Criteria andUserPasswordLessThanOrEqualTo(String value) {  
    359.             addCriterion("USER_PASSWORD <=", value, "userPassword");  
    360.             return (Criteria) this;  
    361.         }  
    362.   
    363.         public Criteria andUserPasswordLike(String value) {  
    364.             addCriterion("USER_PASSWORD like", value, "userPassword");  
    365.             return (Criteria) this;  
    366.         }  
    367.   
    368.         public Criteria andUserPasswordNotLike(String value) {  
    369.             addCriterion("USER_PASSWORD not like", value, "userPassword");  
    370.             return (Criteria) this;  
    371.         }  
    372.   
    373.         public Criteria andUserPasswordIn(List<String> values) {  
    374.             addCriterion("USER_PASSWORD in", values, "userPassword");  
    375.             return (Criteria) this;  
    376.         }  
    377.   
    378.         public Criteria andUserPasswordNotIn(List<String> values) {  
    379.             addCriterion("USER_PASSWORD not in", values, "userPassword");  
    380.             return (Criteria) this;  
    381.         }  
    382.   
    383.         public Criteria andUserPasswordBetween(String value1, String value2) {  
    384.             addCriterion("USER_PASSWORD between", value1, value2, "userPassword");  
    385.             return (Criteria) this;  
    386.         }  
    387.   
    388.         public Criteria andUserPasswordNotBetween(String value1, String value2) {  
    389.             addCriterion("USER_PASSWORD not between", value1, value2, "userPassword");  
    390.             return (Criteria) this;  
    391.         }  
    392.   
    393.         public Criteria andUserEmailIsNull() {  
    394.             addCriterion("USER_EMAIL is null");  
    395.             return (Criteria) this;  
    396.         }  
    397.   
    398.         public Criteria andUserEmailIsNotNull() {  
    399.             addCriterion("USER_EMAIL is not null");  
    400.             return (Criteria) this;  
    401.         }  
    402.   
    403.         public Criteria andUserEmailEqualTo(String value) {  
    404.             addCriterion("USER_EMAIL =", value, "userEmail");  
    405.             return (Criteria) this;  
    406.         }  
    407.   
    408.         public Criteria andUserEmailNotEqualTo(String value) {  
    409.             addCriterion("USER_EMAIL <>", value, "userEmail");  
    410.             return (Criteria) this;  
    411.         }  
    412.   
    413.         public Criteria andUserEmailGreaterThan(String value) {  
    414.             addCriterion("USER_EMAIL >", value, "userEmail");  
    415.             return (Criteria) this;  
    416.         }  
    417.   
    418.         public Criteria andUserEmailGreaterThanOrEqualTo(String value) {  
    419.             addCriterion("USER_EMAIL >=", value, "userEmail");  
    420.             return (Criteria) this;  
    421.         }  
    422.   
    423.         public Criteria andUserEmailLessThan(String value) {  
    424.             addCriterion("USER_EMAIL <", value, "userEmail");  
    425.             return (Criteria) this;  
    426.         }  
    427.   
    428.         public Criteria andUserEmailLessThanOrEqualTo(String value) {  
    429.             addCriterion("USER_EMAIL <=", value, "userEmail");  
    430.             return (Criteria) this;  
    431.         }  
    432.   
    433.         public Criteria andUserEmailLike(String value) {  
    434.             addCriterion("USER_EMAIL like", value, "userEmail");  
    435.             return (Criteria) this;  
    436.         }  
    437.   
    438.         public Criteria andUserEmailNotLike(String value) {  
    439.             addCriterion("USER_EMAIL not like", value, "userEmail");  
    440.             return (Criteria) this;  
    441.         }  
    442.   
    443.         public Criteria andUserEmailIn(List<String> values) {  
    444.             addCriterion("USER_EMAIL in", values, "userEmail");  
    445.             return (Criteria) this;  
    446.         }  
    447.   
    448.         public Criteria andUserEmailNotIn(List<String> values) {  
    449.             addCriterion("USER_EMAIL not in", values, "userEmail");  
    450.             return (Criteria) this;  
    451.         }  
    452.   
    453.         public Criteria andUserEmailBetween(String value1, String value2) {  
    454.             addCriterion("USER_EMAIL between", value1, value2, "userEmail");  
    455.             return (Criteria) this;  
    456.         }  
    457.   
    458.         public Criteria andUserEmailNotBetween(String value1, String value2) {  
    459.             addCriterion("USER_EMAIL not between", value1, value2, "userEmail");  
    460.             return (Criteria) this;  
    461.         }  
    462.     }  
    463.   
    464.     /** 
    465.      * This class was generated by MyBatis Generator. 
    466.      * This class corresponds to the database table t_user 
    467.      * 
    468.      * @mbggenerated do_not_delete_during_merge 
    469.      */  
    470.     public static class Criteria extends GeneratedCriteria {  
    471.   
    472.         protected Criteria() {  
    473.             super();  
    474.         }  
    475.     }  
    476.   
    477.     /** 
    478.      * This class was generated by MyBatis Generator. 
    479.      * This class corresponds to the database table t_user 
    480.      * 
    481.      * @mbggenerated 
    482.      */  
    483.     public static class Criterion {  
    484.         private String condition;  
    485.   
    486.         private Object value;  
    487.   
    488.         private Object secondValue;  
    489.   
    490.         private boolean noValue;  
    491.   
    492.         private boolean singleValue;  
    493.   
    494.         private boolean betweenValue;  
    495.   
    496.         private boolean listValue;  
    497.   
    498.         public String getCondition() {  
    499.             return condition;  
    500.         }  
    501.   
    502.         public Object getValue() {  
    503.             return value;  
    504.         }  
    505.   
    506.         public Object getSecondValue() {  
    507.             return secondValue;  
    508.         }  
    509.   
    510.         public boolean isNoValue() {  
    511.             return noValue;  
    512.         }  
    513.   
    514.         public boolean isSingleValue() {  
    515.             return singleValue;  
    516.         }  
    517.   
    518.         public boolean isBetweenValue() {  
    519.             return betweenValue;  
    520.         }  
    521.   
    522.         public boolean isListValue() {  
    523.             return listValue;  
    524.         }  
    525.   
    526.         protected Criterion(String condition) {  
    527.             super();  
    528.             this.condition = condition;  
    529.             this.noValue = true;  
    530.         }  
    531.   
    532.         protected Criterion(String condition, Object value) {  
    533.             super();  
    534.             this.condition = condition;  
    535.             this.value = value;  
    536.             if (value instanceof List<?>) {  
    537.                 this.listValue = true;  
    538.             } else {  
    539.                 this.singleValue = true;  
    540.             }  
    541.         }  
    542.   
    543.         protected Criterion(String condition, Object value, Object secondValue) {  
    544.             super();  
    545.             this.condition = condition;  
    546.             this.value = value;  
    547.             this.secondValue = secondValue;  
    548.             this.betweenValue = true;  
    549.         }  
    550.     }  
    551. }  
    (2)dao层文件。它自动取名为UserMapper.java,可以自己手动写成UserDao.java

    [java] view plaincopy
    1. package com.lin.dao;  
    2.   
    3. import com.lin.domain.User;  
    4. import com.lin.domain.UserExample;  
    5. import java.util.List;  
    6. import org.apache.ibatis.annotations.Param;  
    7.   
    8. public interface UserMapper {  
    9.     /** 
    10.      * This method was generated by MyBatis Generator. 
    11.      * This method corresponds to the database table t_user 
    12.      * 
    13.      * @mbggenerated 
    14.      */  
    15.     int countByExample(UserExample example);  
    16.   
    17.     /** 
    18.      * This method was generated by MyBatis Generator. 
    19.      * This method corresponds to the database table t_user 
    20.      * 
    21.      * @mbggenerated 
    22.      */  
    23.     int deleteByExample(UserExample example);  
    24.   
    25.     /** 
    26.      * This method was generated by MyBatis Generator. 
    27.      * This method corresponds to the database table t_user 
    28.      * 
    29.      * @mbggenerated 
    30.      */  
    31.     int deleteByPrimaryKey(Integer userId);  
    32.   
    33.     /** 
    34.      * This method was generated by MyBatis Generator. 
    35.      * This method corresponds to the database table t_user 
    36.      * 
    37.      * @mbggenerated 
    38.      */  
    39.     int insert(User record);  
    40.   
    41.     /** 
    42.      * This method was generated by MyBatis Generator. 
    43.      * This method corresponds to the database table t_user 
    44.      * 
    45.      * @mbggenerated 
    46.      */  
    47.     int insertSelective(User record);  
    48.   
    49.     /** 
    50.      * This method was generated by MyBatis Generator. 
    51.      * This method corresponds to the database table t_user 
    52.      * 
    53.      * @mbggenerated 
    54.      */  
    55.     List<User> selectByExample(UserExample example);  
    56.   
    57.     /** 
    58.      * This method was generated by MyBatis Generator. 
    59.      * This method corresponds to the database table t_user 
    60.      * 
    61.      * @mbggenerated 
    62.      */  
    63.     User selectByPrimaryKey(Integer userId);  
    64.   
    65.     /** 
    66.      * This method was generated by MyBatis Generator. 
    67.      * This method corresponds to the database table t_user 
    68.      * 
    69.      * @mbggenerated 
    70.      */  
    71.     int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);  
    72.   
    73.     /** 
    74.      * This method was generated by MyBatis Generator. 
    75.      * This method corresponds to the database table t_user 
    76.      * 
    77.      * @mbggenerated 
    78.      */  
    79.     int updateByExample(@Param("record") User record, @Param("example") UserExample example);  
    80.   
    81.     /** 
    82.      * This method was generated by MyBatis Generator. 
    83.      * This method corresponds to the database table t_user 
    84.      * 
    85.      * @mbggenerated 
    86.      */  
    87.     int updateByPrimaryKeySelective(User record);  
    88.   
    89.     /** 
    90.      * This method was generated by MyBatis Generator. 
    91.      * This method corresponds to the database table t_user 
    92.      * 
    93.      * @mbggenerated 
    94.      */  
    95.     int updateByPrimaryKey(User record);  
    96. }  

    (3)Mapper.xml文件:

    [html] view plaincopy
    1. <?xml version="1.0" encoding="UTF-8" ?>  
    2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >  
    3. <mapper namespace="com.lin.dao.UserMapper" >  
    4.   <resultMap id="BaseResultMap" type="com.lin.domain.User" >  
    5.     <!--  
    6.       WARNING - @mbggenerated  
    7.       This element is automatically generated by MyBatis Generator, do not modify.  
    8.     -->  
    9.     <id column="USER_ID" property="userId" jdbcType="INTEGER" />  
    10.     <result column="USER_NAME" property="userName" jdbcType="CHAR" />  
    11.     <result column="USER_PASSWORD" property="userPassword" jdbcType="CHAR" />  
    12.     <result column="USER_EMAIL" property="userEmail" jdbcType="CHAR" />  
    13.   </resultMap>  
    14.   <sql id="Example_Where_Clause" >  
    15.     <!--  
    16.       WARNING - @mbggenerated  
    17.       This element is automatically generated by MyBatis Generator, do not modify.  
    18.     -->  
    19.     <where >  
    20.       <foreach collection="oredCriteria" item="criteria" separator="or" >  
    21.         <if test="criteria.valid" >  
    22.           <trim prefix="(" suffix=")" prefixOverrides="and" >  
    23.             <foreach collection="criteria.criteria" item="criterion" >  
    24.               <choose >  
    25.                 <when test="criterion.noValue" >  
    26.                   and ${criterion.condition}  
    27.                 </when>  
    28.                 <when test="criterion.singleValue" >  
    29.                   and ${criterion.condition} #{criterion.value}  
    30.                 </when>  
    31.                 <when test="criterion.betweenValue" >  
    32.                   and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}  
    33.                 </when>  
    34.                 <when test="criterion.listValue" >  
    35.                   and ${criterion.condition}  
    36.                   <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >  
    37.                     #{listItem}  
    38.                   </foreach>  
    39.                 </when>  
    40.               </choose>  
    41.             </foreach>  
    42.           </trim>  
    43.         </if>  
    44.       </foreach>  
    45.     </where>  
    46.   </sql>  
    47.   <sql id="Update_By_Example_Where_Clause" >  
    48.     <!--  
    49.       WARNING - @mbggenerated  
    50.       This element is automatically generated by MyBatis Generator, do not modify.  
    51.     -->  
    52.     <where >  
    53.       <foreach collection="example.oredCriteria" item="criteria" separator="or" >  
    54.         <if test="criteria.valid" >  
    55.           <trim prefix="(" suffix=")" prefixOverrides="and" >  
    56.             <foreach collection="criteria.criteria" item="criterion" >  
    57.               <choose >  
    58.                 <when test="criterion.noValue" >  
    59.                   and ${criterion.condition}  
    60.                 </when>  
    61.                 <when test="criterion.singleValue" >  
    62.                   and ${criterion.condition} #{criterion.value}  
    63.                 </when>  
    64.                 <when test="criterion.betweenValue" >  
    65.                   and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}  
    66.                 </when>  
    67.                 <when test="criterion.listValue" >  
    68.                   and ${criterion.condition}  
    69.                   <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >  
    70.                     #{listItem}  
    71.                   </foreach>  
    72.                 </when>  
    73.               </choose>  
    74.             </foreach>  
    75.           </trim>  
    76.         </if>  
    77.       </foreach>  
    78.     </where>  
    79.   </sql>  
    80.   <sql id="Base_Column_List" >  
    81.     <!--  
    82.       WARNING - @mbggenerated  
    83.       This element is automatically generated by MyBatis Generator, do not modify.  
    84.     -->  
    85.     USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL  
    86.   </sql>  
    87.   <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.lin.domain.UserExample" >  
    88.     <!--  
    89.       WARNING - @mbggenerated  
    90.       This element is automatically generated by MyBatis Generator, do not modify.  
    91.     -->  
    92.     select  
    93.     <if test="distinct" >  
    94.       distinct  
    95.     </if>  
    96.     <include refid="Base_Column_List" />  
    97.     from t_user  
    98.     <if test="_parameter != null" >  
    99.       <include refid="Example_Where_Clause" />  
    100.     </if>  
    101.     <if test="orderByClause != null" >  
    102.       order by ${orderByClause}  
    103.     </if>  
    104.   </select>  
    105.   <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >  
    106.     <!--  
    107.       WARNING - @mbggenerated  
    108.       This element is automatically generated by MyBatis Generator, do not modify.  
    109.     -->  
    110.     select   
    111.     <include refid="Base_Column_List" />  
    112.     from t_user  
    113.     where USER_ID = #{userId,jdbcType=INTEGER}  
    114.   </select>  
    115.   <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >  
    116.     <!--  
    117.       WARNING - @mbggenerated  
    118.       This element is automatically generated by MyBatis Generator, do not modify.  
    119.     -->  
    120.     delete from t_user  
    121.     where USER_ID = #{userId,jdbcType=INTEGER}  
    122.   </delete>  
    123.   <delete id="deleteByExample" parameterType="com.lin.domain.UserExample" >  
    124.     <!--  
    125.       WARNING - @mbggenerated  
    126.       This element is automatically generated by MyBatis Generator, do not modify.  
    127.     -->  
    128.     delete from t_user  
    129.     <if test="_parameter != null" >  
    130.       <include refid="Example_Where_Clause" />  
    131.     </if>  
    132.   </delete>  
    133.   <insert id="insert" parameterType="com.lin.domain.User" >  
    134.     <!--  
    135.       WARNING - @mbggenerated  
    136.       This element is automatically generated by MyBatis Generator, do not modify.  
    137.     -->  
    138.     insert into t_user (USER_ID, USER_NAME, USER_PASSWORD,   
    139.       USER_EMAIL)  
    140.     values (#{userId,jdbcType=INTEGER}, #{userName,jdbcType=CHAR}, #{userPassword,jdbcType=CHAR},   
    141.       #{userEmail,jdbcType=CHAR})  
    142.   </insert>  
    143.   <insert id="insertSelective" parameterType="com.lin.domain.User" >  
    144.     <!--  
    145.       WARNING - @mbggenerated  
    146.       This element is automatically generated by MyBatis Generator, do not modify.  
    147.     -->  
    148.     insert into t_user  
    149.     <trim prefix="(" suffix=")" suffixOverrides="," >  
    150.       <if test="userId != null" >  
    151.         USER_ID,  
    152.       </if>  
    153.       <if test="userName != null" >  
    154.         USER_NAME,  
    155.       </if>  
    156.       <if test="userPassword != null" >  
    157.         USER_PASSWORD,  
    158.       </if>  
    159.       <if test="userEmail != null" >  
    160.         USER_EMAIL,  
    161.       </if>  
    162.     </trim>  
    163.     <trim prefix="values (" suffix=")" suffixOverrides="," >  
    164.       <if test="userId != null" >  
    165.         #{userId,jdbcType=INTEGER},  
    166.       </if>  
    167.       <if test="userName != null" >  
    168.         #{userName,jdbcType=CHAR},  
    169.       </if>  
    170.       <if test="userPassword != null" >  
    171.         #{userPassword,jdbcType=CHAR},  
    172.       </if>  
    173.       <if test="userEmail != null" >  
    174.         #{userEmail,jdbcType=CHAR},  
    175.       </if>  
    176.     </trim>  
    177.   </insert>  
    178.   <select id="countByExample" parameterType="com.lin.domain.UserExample" resultType="java.lang.Integer" >  
    179.     <!--  
    180.       WARNING - @mbggenerated  
    181.       This element is automatically generated by MyBatis Generator, do not modify.  
    182.     -->  
    183.     select count(*) from t_user  
    184.     <if test="_parameter != null" >  
    185.       <include refid="Example_Where_Clause" />  
    186.     </if>  
    187.   </select>  
    188.   <update id="updateByExampleSelective" parameterType="map" >  
    189.     <!--  
    190.       WARNING - @mbggenerated  
    191.       This element is automatically generated by MyBatis Generator, do not modify.  
    192.     -->  
    193.     update t_user  
    194.     <set >  
    195.       <if test="record.userId != null" >  
    196.         USER_ID = #{record.userId,jdbcType=INTEGER},  
    197.       </if>  
    198.       <if test="record.userName != null" >  
    199.         USER_NAME = #{record.userName,jdbcType=CHAR},  
    200.       </if>  
    201.       <if test="record.userPassword != null" >  
    202.         USER_PASSWORD = #{record.userPassword,jdbcType=CHAR},  
    203.       </if>  
    204.       <if test="record.userEmail != null" >  
    205.         USER_EMAIL = #{record.userEmail,jdbcType=CHAR},  
    206.       </if>  
    207.     </set>  
    208.     <if test="_parameter != null" >  
    209.       <include refid="Update_By_Example_Where_Clause" />  
    210.     </if>  
    211.   </update>  
    212.   <update id="updateByExample" parameterType="map" >  
    213.     <!--  
    214.       WARNING - @mbggenerated  
    215.       This element is automatically generated by MyBatis Generator, do not modify.  
    216.     -->  
    217.     update t_user  
    218.     set USER_ID = #{record.userId,jdbcType=INTEGER},  
    219.       USER_NAME = #{record.userName,jdbcType=CHAR},  
    220.       USER_PASSWORD = #{record.userPassword,jdbcType=CHAR},  
    221.       USER_EMAIL = #{record.userEmail,jdbcType=CHAR}  
    222.     <if test="_parameter != null" >  
    223.       <include refid="Update_By_Example_Where_Clause" />  
    224.     </if>  
    225.   </update>  
    226.   <update id="updateByPrimaryKeySelective" parameterType="com.lin.domain.User" >  
    227.     <!--  
    228.       WARNING - @mbggenerated  
    229.       This element is automatically generated by MyBatis Generator, do not modify.  
    230.     -->  
    231.     update t_user  
    232.     <set >  
    233.       <if test="userName != null" >  
    234.         USER_NAME = #{userName,jdbcType=CHAR},  
    235.       </if>  
    236.       <if test="userPassword != null" >  
    237.         USER_PASSWORD = #{userPassword,jdbcType=CHAR},  
    238.       </if>  
    239.       <if test="userEmail != null" >  
    240.         USER_EMAIL = #{userEmail,jdbcType=CHAR},  
    241.       </if>  
    242.     </set>  
    243.     where USER_ID = #{userId,jdbcType=INTEGER}  
    244.   </update>  
    245.   <update id="updateByPrimaryKey" parameterType="com.lin.domain.User" >  
    246.     <!--  
    247.       WARNING - @mbggenerated  
    248.       This element is automatically generated by MyBatis Generator, do not modify.  
    249.     -->  
    250.     update t_user  
    251.     set USER_NAME = #{userName,jdbcType=CHAR},  
    252.       USER_PASSWORD = #{userPassword,jdbcType=CHAR},  
    253.       USER_EMAIL = #{userEmail,jdbcType=CHAR}  
    254.     where USER_ID = #{userId,jdbcType=INTEGER}  
    255.   </update>  
    256. </mapper>  

    这样就好了,serivce层的文件自己再去写写就好了。

    如果不想要UserExample文件怎么办呢?

    那就把

    [html] view plaincopy
    1. <table schema="general" tableName="T_USER" domainObjectName="User">  
    2.  <!--domain字段的命名规则,false:默认为驼峰命名 true:按数据库真实命名  -->  
    3. <property name="useActualColumnNames" value="false"/>  
    4. </table>  
    换成:

    [html] view plaincopy
    1. <table schema="general" tableName="T_USER" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false"  
    2.        enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">  
    3.  <!--domain字段的命名规则,false:默认为驼峰命名 true:按数据库真实命名  -->  
    4. <property name="useActualColumnNames" value="false"/>  
    5. </table>  
    这样就可以了
    2、java代码读取xml文件生成

    首先要导入如下的包:

    然后在工程里写一个文件如下:

    [java] view plaincopy
    1. package Test;  
    2. import java.io.File;  
    3. import java.io.IOException;  
    4. import java.sql.SQLException;  
    5. import java.util.ArrayList;  
    6. import java.util.List;  
    7.   
    8. import org.mybatis.generator.api.MyBatisGenerator;  
    9. import org.mybatis.generator.config.Configuration;  
    10. import org.mybatis.generator.config.xml.ConfigurationParser;  
    11. import org.mybatis.generator.exception.InvalidConfigurationException;  
    12. import org.mybatis.generator.exception.XMLParserException;  
    13. import org.mybatis.generator.internal.DefaultShellCallback;  
    14. public class BuildFile {  
    15.     public static void main(String[] args) throws InvalidConfigurationException, IOException, XMLParserException, SQLException, InterruptedException {  
    16.         List<String> warnings = new ArrayList<String>();    
    17.           boolean overwrite = true;    
    18.           File configFile = new File("D:\lunaJee-workspace\MyBatisLearningChapter7\src\generator.xml");  //输入绝对路径  
    19.           ConfigurationParser cp = new ConfigurationParser(warnings);    
    20.           Configuration config=null;  
    21.           config = cp.parseConfiguration(configFile);  
    22.           DefaultShellCallback callback = new DefaultShellCallback(overwrite);    
    23.           MyBatisGenerator myBatisGenerator = null;  
    24.           myBatisGenerator = new MyBatisGenerator(config, callback, warnings);  
    25.           myBatisGenerator.generate(null);  
    26.     }  
    27. }  

    然后运行,再刷新下就可以了


  • 相关阅读:
    JVM学习五:JVM之类加载器之编译常量和主动使用
    JVM学习一:JVM之类加载器概况
    JVM学习三:JVM之类加载器之连接分析
    JVM学习二:JVM之类加载器之加载分析
    JVM学习四:JVM之类加载器之初始化分析
    高斯滤波详解 附python和matlab高斯滤波代码
    图像最大池化
    图像平均池化 pytorch库中的平均池化
    图像色彩量化处理
    图像RGB到HSV色彩空间转换及其逆变换
  • 原文地址:https://www.cnblogs.com/zhanghaiyang/p/7213546.html
Copyright © 2020-2023  润新知