一、构建一个环境
1. 首先创建一个表:
[sql] view plaincopy
- CREATE TABLE
- t_user
- (
- USER_ID INT NOT NULL AUTO_INCREMENT,
- USER_NAME CHAR(30) NOT NULL,
- USER_PASSWORD CHAR(10) NOT NULL,
- USER_EMAIL CHAR(30) NOT NULL,
- PRIMARY KEY (USER_ID)
- )
- 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
- <?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:数据库的JDBC驱动的jar包地址 -->
- <classPathEntry location="D:\Java\Jar\mysql-connector-java-5.1.22\mysql-connector-java-5.1.22-bin.jar" />
- <context id="DB2Tables" targetRuntime="MyBatis3">
- <commentGenerator>
- <!-- 抑制警告 -->
- <property name="suppressTypeWarnings" value="true" />
- <!-- 是否去除自动生成的注释 true:是 : false:否 -->
- <property name="suppressAllComments" value="false" />
- <!-- 是否生成注释代时间戳-->
- <property name="suppressDate" value="true" />
- </commentGenerator>
- <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
- <jdbcConnection driverClass="com.mysql.jdbc.Driver"
- connectionURL="jdbc:mysql://localhost/learning" userId="root"
- password="[email protected]">
- </jdbcConnection>
- <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer true,把JDBC DECIMAL 和
- NUMERIC 类型解析为java.math.BigDecimal -->
- <!-- <javaTypeResolver>
- <property name="forceBigDecimals" value="false" />
- </javaTypeResolver> -->
- <!--生成Model类存放位置 -->
- <javaModelGenerator targetPackage="com.lin.domain"
- targetProject="D:\lunaJee-workspace\MyBatisLearningChapter7\src">
- <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
- <property name="enableSubPackages" value="false" />
- <!-- 是否针对string类型的字段在set的时候进行trim调用 -->
- <property name="trimStrings" value="true" />
- </javaModelGenerator>
- <!--生成映射文件存放位置 -->
- <sqlMapGenerator targetPackage="com.lin.mapper"
- targetProject="D:\lunaJee-workspace\MyBatisLearningChapter7\src">
- <property name="enableSubPackages" value="true" />
- </sqlMapGenerator>
- <!--生成Dao类存放位置 -->
- <javaClientGenerator type="XMLMAPPER"
- targetPackage="com.lin.dao" targetProject="D:\lunaJee-workspace\MyBatisLearningChapter7\src">
- <property name="enableSubPackages" value="true" />
- </javaClientGenerator>
- <!-- tableName:用于自动生成代码的数据库表;domainObjectName:对应于数据库表的javaBean类名 -->
- <table schema="general" tableName="T_USER" domainObjectName="User">
- <!--domain字段的命名规则,false:默认为驼峰命名 true:按数据库真实命名 -->
- <property name="useActualColumnNames" value="false"/>
- <!-- 忽略列,不生成bean 字段 -->
- <!-- <ignoreColumn column="FRED" /> -->
- <!-- 指定列的java数据类型 -->
- <!-- <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" /> -->
- </table>
- </context>
- </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
- package com.lin.domain;
- public class User {
- /**
- * This field was generated by MyBatis Generator.
- * This field corresponds to the database column t_user.USER_ID
- *
- * @mbggenerated
- */
- private Integer userId;
- /**
- * This field was generated by MyBatis Generator.
- * This field corresponds to the database column t_user.USER_NAME
- *
- * @mbggenerated
- */
- private String userName;
- /**
- * This field was generated by MyBatis Generator.
- * This field corresponds to the database column t_user.USER_PASSWORD
- *
- * @mbggenerated
- */
- private String userPassword;
- /**
- * This field was generated by MyBatis Generator.
- * This field corresponds to the database column t_user.USER_EMAIL
- *
- * @mbggenerated
- */
- private String userEmail;
- /**
- * This method was generated by MyBatis Generator.
- * This method returns the value of the database column t_user.USER_ID
- *
- * @return the value of t_user.USER_ID
- *
- * @mbggenerated
- */
- public Integer getUserId() {
- return userId;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method sets the value of the database column t_user.USER_ID
- *
- * @param userId the value for t_user.USER_ID
- *
- * @mbggenerated
- */
- public void setUserId(Integer userId) {
- this.userId = userId;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method returns the value of the database column t_user.USER_NAME
- *
- * @return the value of t_user.USER_NAME
- *
- * @mbggenerated
- */
- public String getUserName() {
- return userName;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method sets the value of the database column t_user.USER_NAME
- *
- * @param userName the value for t_user.USER_NAME
- *
- * @mbggenerated
- */
- public void setUserName(String userName) {
- this.userName = userName == null ? null : userName.trim();
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method returns the value of the database column t_user.USER_PASSWORD
- *
- * @return the value of t_user.USER_PASSWORD
- *
- * @mbggenerated
- */
- public String getUserPassword() {
- return userPassword;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method sets the value of the database column t_user.USER_PASSWORD
- *
- * @param userPassword the value for t_user.USER_PASSWORD
- *
- * @mbggenerated
- */
- public void setUserPassword(String userPassword) {
- this.userPassword = userPassword == null ? null : userPassword.trim();
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method returns the value of the database column t_user.USER_EMAIL
- *
- * @return the value of t_user.USER_EMAIL
- *
- * @mbggenerated
- */
- public String getUserEmail() {
- return userEmail;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method sets the value of the database column t_user.USER_EMAIL
- *
- * @param userEmail the value for t_user.USER_EMAIL
- *
- * @mbggenerated
- */
- public void setUserEmail(String userEmail) {
- this.userEmail = userEmail == null ? null : userEmail.trim();
- }
- }
UserExample.java这个文件可以控制是否生成
[java] view plaincopy
- package com.lin.domain;
- import java.util.ArrayList;
- import java.util.List;
- public class UserExample {
- /**
- * This field was generated by MyBatis Generator.
- * This field corresponds to the database table t_user
- *
- * @mbggenerated
- */
- protected String orderByClause;
- /**
- * This field was generated by MyBatis Generator.
- * This field corresponds to the database table t_user
- *
- * @mbggenerated
- */
- protected boolean distinct;
- /**
- * This field was generated by MyBatis Generator.
- * This field corresponds to the database table t_user
- *
- * @mbggenerated
- */
- protected List<Criteria> oredCriteria;
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public UserExample() {
- oredCriteria = new ArrayList<Criteria>();
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public void setOrderByClause(String orderByClause) {
- this.orderByClause = orderByClause;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public String getOrderByClause() {
- return orderByClause;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public void setDistinct(boolean distinct) {
- this.distinct = distinct;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public boolean isDistinct() {
- return distinct;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public List<Criteria> getOredCriteria() {
- return oredCriteria;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public void or(Criteria criteria) {
- oredCriteria.add(criteria);
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public Criteria or() {
- Criteria criteria = createCriteriaInternal();
- oredCriteria.add(criteria);
- return criteria;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public Criteria createCriteria() {
- Criteria criteria = createCriteriaInternal();
- if (oredCriteria.size() == 0) {
- oredCriteria.add(criteria);
- }
- return criteria;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- protected Criteria createCriteriaInternal() {
- Criteria criteria = new Criteria();
- return criteria;
- }
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public void clear() {
- oredCriteria.clear();
- orderByClause = null;
- distinct = false;
- }
- /**
- * This class was generated by MyBatis Generator.
- * This class corresponds to the database table t_user
- *
- * @mbggenerated
- */
- protected abstract static class GeneratedCriteria {
- protected List<Criterion> criteria;
- protected GeneratedCriteria() {
- super();
- criteria = new ArrayList<Criterion>();
- }
- public boolean isValid() {
- return criteria.size() > 0;
- }
- public List<Criterion> getCriteria() {
- return criteria;
- }
- protected void addCriterion(String condition) {
- if (condition == null) {
- throw new RuntimeException("Value for condition cannot be null");
- }
- criteria.add(new Criterion(condition));
- }
- protected void addCriterion(String condition, Object value, String property) {
- if (value == null) {
- throw new RuntimeException("Value for " + property + " cannot be null");
- }
- criteria.add(new Criterion(condition, value));
- }
- protected void addCriterion(String condition, Object value1, Object value2, String property) {
- if (value1 == null || value2 == null) {
- throw new RuntimeException("Between values for " + property + " cannot be null");
- }
- criteria.add(new Criterion(condition, value1, value2));
- }
- public Criteria andUserIdIsNull() {
- addCriterion("USER_ID is null");
- return (Criteria) this;
- }
- public Criteria andUserIdIsNotNull() {
- addCriterion("USER_ID is not null");
- return (Criteria) this;
- }
- public Criteria andUserIdEqualTo(Integer value) {
- addCriterion("USER_ID =", value, "userId");
- return (Criteria) this;
- }
- public Criteria andUserIdNotEqualTo(Integer value) {
- addCriterion("USER_ID <>", value, "userId");
- return (Criteria) this;
- }
- public Criteria andUserIdGreaterThan(Integer value) {
- addCriterion("USER_ID >", value, "userId");
- return (Criteria) this;
- }
- public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
- addCriterion("USER_ID >=", value, "userId");
- return (Criteria) this;
- }
- public Criteria andUserIdLessThan(Integer value) {
- addCriterion("USER_ID <", value, "userId");
- return (Criteria) this;
- }
- public Criteria andUserIdLessThanOrEqualTo(Integer value) {
- addCriterion("USER_ID <=", value, "userId");
- return (Criteria) this;
- }
- public Criteria andUserIdIn(List<Integer> values) {
- addCriterion("USER_ID in", values, "userId");
- return (Criteria) this;
- }
- public Criteria andUserIdNotIn(List<Integer> values) {
- addCriterion("USER_ID not in", values, "userId");
- return (Criteria) this;
- }
- public Criteria andUserIdBetween(Integer value1, Integer value2) {
- addCriterion("USER_ID between", value1, value2, "userId");
- return (Criteria) this;
- }
- public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
- addCriterion("USER_ID not between", value1, value2, "userId");
- return (Criteria) this;
- }
- public Criteria andUserNameIsNull() {
- addCriterion("USER_NAME is null");
- return (Criteria) this;
- }
- public Criteria andUserNameIsNotNull() {
- addCriterion("USER_NAME is not null");
- return (Criteria) this;
- }
- public Criteria andUserNameEqualTo(String value) {
- addCriterion("USER_NAME =", value, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameNotEqualTo(String value) {
- addCriterion("USER_NAME <>", value, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameGreaterThan(String value) {
- addCriterion("USER_NAME >", value, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameGreaterThanOrEqualTo(String value) {
- addCriterion("USER_NAME >=", value, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameLessThan(String value) {
- addCriterion("USER_NAME <", value, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameLessThanOrEqualTo(String value) {
- addCriterion("USER_NAME <=", value, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameLike(String value) {
- addCriterion("USER_NAME like", value, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameNotLike(String value) {
- addCriterion("USER_NAME not like", value, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameIn(List<String> values) {
- addCriterion("USER_NAME in", values, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameNotIn(List<String> values) {
- addCriterion("USER_NAME not in", values, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameBetween(String value1, String value2) {
- addCriterion("USER_NAME between", value1, value2, "userName");
- return (Criteria) this;
- }
- public Criteria andUserNameNotBetween(String value1, String value2) {
- addCriterion("USER_NAME not between", value1, value2, "userName");
- return (Criteria) this;
- }
- public Criteria andUserPasswordIsNull() {
- addCriterion("USER_PASSWORD is null");
- return (Criteria) this;
- }
- public Criteria andUserPasswordIsNotNull() {
- addCriterion("USER_PASSWORD is not null");
- return (Criteria) this;
- }
- public Criteria andUserPasswordEqualTo(String value) {
- addCriterion("USER_PASSWORD =", value, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordNotEqualTo(String value) {
- addCriterion("USER_PASSWORD <>", value, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordGreaterThan(String value) {
- addCriterion("USER_PASSWORD >", value, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordGreaterThanOrEqualTo(String value) {
- addCriterion("USER_PASSWORD >=", value, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordLessThan(String value) {
- addCriterion("USER_PASSWORD <", value, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordLessThanOrEqualTo(String value) {
- addCriterion("USER_PASSWORD <=", value, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordLike(String value) {
- addCriterion("USER_PASSWORD like", value, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordNotLike(String value) {
- addCriterion("USER_PASSWORD not like", value, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordIn(List<String> values) {
- addCriterion("USER_PASSWORD in", values, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordNotIn(List<String> values) {
- addCriterion("USER_PASSWORD not in", values, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordBetween(String value1, String value2) {
- addCriterion("USER_PASSWORD between", value1, value2, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserPasswordNotBetween(String value1, String value2) {
- addCriterion("USER_PASSWORD not between", value1, value2, "userPassword");
- return (Criteria) this;
- }
- public Criteria andUserEmailIsNull() {
- addCriterion("USER_EMAIL is null");
- return (Criteria) this;
- }
- public Criteria andUserEmailIsNotNull() {
- addCriterion("USER_EMAIL is not null");
- return (Criteria) this;
- }
- public Criteria andUserEmailEqualTo(String value) {
- addCriterion("USER_EMAIL =", value, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailNotEqualTo(String value) {
- addCriterion("USER_EMAIL <>", value, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailGreaterThan(String value) {
- addCriterion("USER_EMAIL >", value, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailGreaterThanOrEqualTo(String value) {
- addCriterion("USER_EMAIL >=", value, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailLessThan(String value) {
- addCriterion("USER_EMAIL <", value, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailLessThanOrEqualTo(String value) {
- addCriterion("USER_EMAIL <=", value, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailLike(String value) {
- addCriterion("USER_EMAIL like", value, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailNotLike(String value) {
- addCriterion("USER_EMAIL not like", value, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailIn(List<String> values) {
- addCriterion("USER_EMAIL in", values, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailNotIn(List<String> values) {
- addCriterion("USER_EMAIL not in", values, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailBetween(String value1, String value2) {
- addCriterion("USER_EMAIL between", value1, value2, "userEmail");
- return (Criteria) this;
- }
- public Criteria andUserEmailNotBetween(String value1, String value2) {
- addCriterion("USER_EMAIL not between", value1, value2, "userEmail");
- return (Criteria) this;
- }
- }
- /**
- * This class was generated by MyBatis Generator.
- * This class corresponds to the database table t_user
- *
- * @mbggenerated do_not_delete_during_merge
- */
- public static class Criteria extends GeneratedCriteria {
- protected Criteria() {
- super();
- }
- }
- /**
- * This class was generated by MyBatis Generator.
- * This class corresponds to the database table t_user
- *
- * @mbggenerated
- */
- public static class Criterion {
- private String condition;
- private Object value;
- private Object secondValue;
- private boolean noValue;
- private boolean singleValue;
- private boolean betweenValue;
- private boolean listValue;
- public String getCondition() {
- return condition;
- }
- public Object getValue() {
- return value;
- }
- public Object getSecondValue() {
- return secondValue;
- }
- public boolean isNoValue() {
- return noValue;
- }
- public boolean isSingleValue() {
- return singleValue;
- }
- public boolean isBetweenValue() {
- return betweenValue;
- }
- public boolean isListValue() {
- return listValue;
- }
- protected Criterion(String condition) {
- super();
- this.condition = condition;
- this.noValue = true;
- }
- protected Criterion(String condition, Object value) {
- super();
- this.condition = condition;
- this.value = value;
- if (value instanceof List<?>) {
- this.listValue = true;
- } else {
- this.singleValue = true;
- }
- }
- protected Criterion(String condition, Object value, Object secondValue) {
- super();
- this.condition = condition;
- this.value = value;
- this.secondValue = secondValue;
- this.betweenValue = true;
- }
- }
- }
(2)dao层文件。它自动取名为UserMapper.java,可以自己手动写成UserDao.java
[java] view plaincopy
- package com.lin.dao;
- import com.lin.domain.User;
- import com.lin.domain.UserExample;
- import java.util.List;
- import org.apache.ibatis.annotations.Param;
- public interface UserMapper {
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- int countByExample(UserExample example);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- int deleteByExample(UserExample example);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- int deleteByPrimaryKey(Integer userId);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- int insert(User record);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- int insertSelective(User record);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- List<User> selectByExample(UserExample example);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- User selectByPrimaryKey(Integer userId);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- int updateByExample(@Param("record") User record, @Param("example") UserExample example);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- int updateByPrimaryKeySelective(User record);
- /**
- * This method was generated by MyBatis Generator.
- * This method corresponds to the database table t_user
- *
- * @mbggenerated
- */
- int updateByPrimaryKey(User record);
- }
(3)Mapper.xml文件:
[html] view plaincopy
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
- <mapper namespace="com.lin.dao.UserMapper" >
- <resultMap id="BaseResultMap" type="com.lin.domain.User" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- <id column="USER_ID" property="userId" jdbcType="INTEGER" />
- <result column="USER_NAME" property="userName" jdbcType="CHAR" />
- <result column="USER_PASSWORD" property="userPassword" jdbcType="CHAR" />
- <result column="USER_EMAIL" property="userEmail" jdbcType="CHAR" />
- </resultMap>
- <sql id="Example_Where_Clause" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- <where >
- <foreach collection="oredCriteria" item="criteria" separator="or" >
- <if test="criteria.valid" >
- <trim prefix="(" suffix=")" prefixOverrides="and" >
- <foreach collection="criteria.criteria" item="criterion" >
- <choose >
- <when test="criterion.noValue" >
- and ${criterion.condition}
- </when>
- <when test="criterion.singleValue" >
- and ${criterion.condition} #{criterion.value}
- </when>
- <when test="criterion.betweenValue" >
- and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
- </when>
- <when test="criterion.listValue" >
- and ${criterion.condition}
- <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
- #{listItem}
- </foreach>
- </when>
- </choose>
- </foreach>
- </trim>
- </if>
- </foreach>
- </where>
- </sql>
- <sql id="Update_By_Example_Where_Clause" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- <where >
- <foreach collection="example.oredCriteria" item="criteria" separator="or" >
- <if test="criteria.valid" >
- <trim prefix="(" suffix=")" prefixOverrides="and" >
- <foreach collection="criteria.criteria" item="criterion" >
- <choose >
- <when test="criterion.noValue" >
- and ${criterion.condition}
- </when>
- <when test="criterion.singleValue" >
- and ${criterion.condition} #{criterion.value}
- </when>
- <when test="criterion.betweenValue" >
- and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
- </when>
- <when test="criterion.listValue" >
- and ${criterion.condition}
- <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
- #{listItem}
- </foreach>
- </when>
- </choose>
- </foreach>
- </trim>
- </if>
- </foreach>
- </where>
- </sql>
- <sql id="Base_Column_List" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- USER_ID, USER_NAME, USER_PASSWORD, USER_EMAIL
- </sql>
- <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.lin.domain.UserExample" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- select
- <if test="distinct" >
- distinct
- </if>
- <include refid="Base_Column_List" />
- from t_user
- <if test="_parameter != null" >
- <include refid="Example_Where_Clause" />
- </if>
- <if test="orderByClause != null" >
- order by ${orderByClause}
- </if>
- </select>
- <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- select
- <include refid="Base_Column_List" />
- from t_user
- where USER_ID = #{userId,jdbcType=INTEGER}
- </select>
- <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- delete from t_user
- where USER_ID = #{userId,jdbcType=INTEGER}
- </delete>
- <delete id="deleteByExample" parameterType="com.lin.domain.UserExample" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- delete from t_user
- <if test="_parameter != null" >
- <include refid="Example_Where_Clause" />
- </if>
- </delete>
- <insert id="insert" parameterType="com.lin.domain.User" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- insert into t_user (USER_ID, USER_NAME, USER_PASSWORD,
- USER_EMAIL)
- values (#{userId,jdbcType=INTEGER}, #{userName,jdbcType=CHAR}, #{userPassword,jdbcType=CHAR},
- #{userEmail,jdbcType=CHAR})
- </insert>
- <insert id="insertSelective" parameterType="com.lin.domain.User" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- insert into t_user
- <trim prefix="(" suffix=")" suffixOverrides="," >
- <if test="userId != null" >
- USER_ID,
- </if>
- <if test="userName != null" >
- USER_NAME,
- </if>
- <if test="userPassword != null" >
- USER_PASSWORD,
- </if>
- <if test="userEmail != null" >
- USER_EMAIL,
- </if>
- </trim>
- <trim prefix="values (" suffix=")" suffixOverrides="," >
- <if test="userId != null" >
- #{userId,jdbcType=INTEGER},
- </if>
- <if test="userName != null" >
- #{userName,jdbcType=CHAR},
- </if>
- <if test="userPassword != null" >
- #{userPassword,jdbcType=CHAR},
- </if>
- <if test="userEmail != null" >
- #{userEmail,jdbcType=CHAR},
- </if>
- </trim>
- </insert>
- <select id="countByExample" parameterType="com.lin.domain.UserExample" resultType="java.lang.Integer" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- select count(*) from t_user
- <if test="_parameter != null" >
- <include refid="Example_Where_Clause" />
- </if>
- </select>
- <update id="updateByExampleSelective" parameterType="map" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- update t_user
- <set >
- <if test="record.userId != null" >
- USER_ID = #{record.userId,jdbcType=INTEGER},
- </if>
- <if test="record.userName != null" >
- USER_NAME = #{record.userName,jdbcType=CHAR},
- </if>
- <if test="record.userPassword != null" >
- USER_PASSWORD = #{record.userPassword,jdbcType=CHAR},
- </if>
- <if test="record.userEmail != null" >
- USER_EMAIL = #{record.userEmail,jdbcType=CHAR},
- </if>
- </set>
- <if test="_parameter != null" >
- <include refid="Update_By_Example_Where_Clause" />
- </if>
- </update>
- <update id="updateByExample" parameterType="map" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- update t_user
- set USER_ID = #{record.userId,jdbcType=INTEGER},
- USER_NAME = #{record.userName,jdbcType=CHAR},
- USER_PASSWORD = #{record.userPassword,jdbcType=CHAR},
- USER_EMAIL = #{record.userEmail,jdbcType=CHAR}
- <if test="_parameter != null" >
- <include refid="Update_By_Example_Where_Clause" />
- </if>
- </update>
- <update id="updateByPrimaryKeySelective" parameterType="com.lin.domain.User" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- update t_user
- <set >
- <if test="userName != null" >
- USER_NAME = #{userName,jdbcType=CHAR},
- </if>
- <if test="userPassword != null" >
- USER_PASSWORD = #{userPassword,jdbcType=CHAR},
- </if>
- <if test="userEmail != null" >
- USER_EMAIL = #{userEmail,jdbcType=CHAR},
- </if>
- </set>
- where USER_ID = #{userId,jdbcType=INTEGER}
- </update>
- <update id="updateByPrimaryKey" parameterType="com.lin.domain.User" >
- <!--
- WARNING - @mbggenerated
- This element is automatically generated by MyBatis Generator, do not modify.
- -->
- update t_user
- set USER_NAME = #{userName,jdbcType=CHAR},
- USER_PASSWORD = #{userPassword,jdbcType=CHAR},
- USER_EMAIL = #{userEmail,jdbcType=CHAR}
- where USER_ID = #{userId,jdbcType=INTEGER}
- </update>
- </mapper>
这样就好了,serivce层的文件自己再去写写就好了。
如果不想要UserExample文件怎么办呢?
那就把
[html] view plaincopy
- <table schema="general" tableName="T_USER" domainObjectName="User">
- <!--domain字段的命名规则,false:默认为驼峰命名 true:按数据库真实命名 -->
- <property name="useActualColumnNames" value="false"/>
- </table>
换成:
[html] view plaincopy
- <table schema="general" tableName="T_USER" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false"
- enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
- <!--domain字段的命名规则,false:默认为驼峰命名 true:按数据库真实命名 -->
- <property name="useActualColumnNames" value="false"/>
- </table>
这样就可以了
2、java代码读取xml文件生成
首先要导入如下的包:
然后在工程里写一个文件如下:
[java] view plaincopy
- package Test;
- import java.io.File;
- import java.io.IOException;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- import org.mybatis.generator.api.MyBatisGenerator;
- import org.mybatis.generator.config.Configuration;
- import org.mybatis.generator.config.xml.ConfigurationParser;
- import org.mybatis.generator.exception.InvalidConfigurationException;
- import org.mybatis.generator.exception.XMLParserException;
- import org.mybatis.generator.internal.DefaultShellCallback;
- public class BuildFile {
- public static void main(String[] args) throws InvalidConfigurationException, IOException, XMLParserException, SQLException, InterruptedException {
- List<String> warnings = new ArrayList<String>();
- boolean overwrite = true;
- File configFile = new File("D:\\lunaJee-workspace\\MyBatisLearningChapter7\\src\\generator.xml"); //输入绝对路径
- ConfigurationParser cp = new ConfigurationParser(warnings);
- Configuration config=null;
- config = cp.parseConfiguration(configFile);
- DefaultShellCallback callback = new DefaultShellCallback(overwrite);
- MyBatisGenerator myBatisGenerator = null;
- myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
- myBatisGenerator.generate(null);
- }
- }
然后运行,再刷新下就可以了