Mybatis(學習三)--增刪改查
阿新 • • 發佈:2019-02-06
1.建立maven專案
2.配置pom.xml檔案
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lq</groupId>
<artifactId>Mybatis01</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Mybatis01 Maven Webapp</name>
<url>http://maven.apache.org</url>
<!-- 設定UTF-8編碼格式 -->
<properties>
<!-- 檔案拷貝時的編碼 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 編譯時的編碼 -->
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<!-- 自定義常量,在依賴中可以通過${名字}的方式進行引用 -->
<spring.version>4.3.14.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!--顯示日誌-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
<!-- 單元測試配置 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- jdk版本配置 -->
<build>
<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>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.資料庫配置:database.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///mysql
username=root
password=root
4.mybatis配置檔案:mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 分離配置 -->
<properties resource="database.properties"/>
<!-- 環境配置 -->
<environments default="lq">
<environment id="lq">
<!-- 事務管理器的配置 -->
<transactionManager type="JDBC"/>
<!-- 基本資訊配置 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!-- 註冊對映元檔案 -->
<mappers>
<mapper resource="com/lq/mapper/UserBeanMapper.xml"/>
</mappers>
</configuration>
5.日誌輸出配置:log4j.properties
log4j.rootLogger=ALL, Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%m%n
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=INFO
6.反向工程檔案配置:generator.xml
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="context1" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressAllComments" value="true" />
<property name="suppressDate" value="true" />
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql:///mysql" userId="root" password="root">
</jdbcConnection>
<javaModelGenerator targetPackage="com.lq.entity"
targetProject="Mybatis01">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="false" />
</javaModelGenerator>
<sqlMapGenerator targetPackage="com.lq.mapper"
targetProject="Mybatis01">
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.lq.dao" implementationPackage="com.lq.dao.impl"
targetProject="Mybatis01">
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<table tableName="t_users" domainObjectName="UserBean">
</table>
</context>
</generatorConfiguration>
7.反向生成的實體類:
package com.lq.entity;
import java.math.BigDecimal;
import java.util.Date;
public class UserBean {
private Long id;
private String username;
private String password;
private Date birth;
private Boolean sex;
private BigDecimal salary;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public Boolean getSex() {
return sex;
}
public void setSex(Boolean sex) {
this.sex = sex;
}
public BigDecimal getSalary() {
return salary;
}
public void setSalary(BigDecimal salary) {
this.salary = salary;
}
@Override
public String toString() {
return "UserBean [id=" + id + ", username=" + username + ", password=" + password + ", birth=" + birth
+ ", sex=" + sex + ", salary=" + salary + "]";
}
}
package com.lq.entity;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class UserBeanExample {
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
public UserBeanExample() {
oredCriteria = new ArrayList<Criteria>();
}
public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}
public String getOrderByClause() {
return orderByClause;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
public boolean isDistinct() {
return distinct;
}
public List<Criteria> getOredCriteria() {
return oredCriteria;
}
public void or(Criteria criteria) {
oredCriteria.add(criteria);
}
public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}
public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}
protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}
public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}
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> getAllCriteria() {
return criteria;
}
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 andIdIsNull() {
addCriterion("Id is null");
return (Criteria) this;
}
public Criteria andIdIsNotNull() {
addCriterion("Id is not null");
return (Criteria) this;
}
public Criteria andIdEqualTo(Long value) {
addCriterion("Id =", value, "id");
return (Criteria) this;
}
public Criteria andIdNotEqualTo(Long value) {
addCriterion("Id <>", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThan(Long value) {
addCriterion("Id >", value, "id");
return (Criteria) this;
}
public Criteria andIdGreaterThanOrEqualTo(Long value) {
addCriterion("Id >=", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThan(Long value) {
addCriterion("Id <", value, "id");
return (Criteria) this;
}
public Criteria andIdLessThanOrEqualTo(Long value) {
addCriterion("Id <=", value, "id");
return (Criteria) this;
}
public Criteria andIdIn(List<Long> values) {
addCriterion("Id in", values, "id");
return (Criteria) this;
}
public Criteria andIdNotIn(List<Long> values) {
addCriterion("Id not in", values, "id");
return (Criteria) this;
}
public Criteria andIdBetween(Long value1, Long value2) {
addCriterion("Id between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andIdNotBetween(Long value1, Long value2) {
addCriterion("Id not between", value1, value2, "id");
return (Criteria) this;
}
public Criteria andUsernameIsNull() {
addCriterion("Username is null");
return (Criteria) this;
}
public Criteria andUsernameIsNotNull() {
addCriterion("Username is not null");
return (Criteria) this;
}
public Criteria andUsernameEqualTo(String value) {
addCriterion("Username =", value, "username");
return (Criteria) this;
}
public Criteria andUsernameNotEqualTo(String value) {
addCriterion("Username <>", value, "username");
return (Criteria) this;
}
public Criteria andUsernameGreaterThan(String value) {
addCriterion("Username >", value, "username");
return (Criteria) this;
}
public Criteria andUsernameGreaterThanOrEqualTo(String value) {
addCriterion("Username >=", value, "username");
return (Criteria) this;
}
public Criteria andUsernameLessThan(String value) {
addCriterion("Username <", value, "username");
return (Criteria) this;
}
public Criteria andUsernameLessThanOrEqualTo(String value) {
addCriterion("Username <=", value, "username");
return (Criteria) this;
}
public Criteria andUsernameLike(String value) {
addCriterion("Username like", value, "username");
return (Criteria) this;
}
public Criteria andUsernameNotLike(String value) {
addCriterion("Username not like", value, "username");
return (Criteria) this;
}
public Criteria andUsernameIn(List<String> values) {
addCriterion("Username in", values, "username");
return (Criteria) this;
}
public Criteria andUsernameNotIn(List<String> values) {
addCriterion("Username not in", values, "username");
return (Criteria) this;
}
public Criteria andUsernameBetween(String value1, String value2) {
addCriterion("Username between", value1, value2, "username");
return (Criteria) this;
}
public Criteria andUsernameNotBetween(String value1, String value2) {
addCriterion("Username not between", value1, value2, "username");
return (Criteria) this;
}
public Criteria andPasswordIsNull() {
addCriterion("Password is null");
return (Criteria) this;
}
public Criteria andPasswordIsNotNull() {
addCriterion("Password is not null");
return (Criteria) this;
}
public Criteria andPasswordEqualTo(String value) {
addCriterion("Password =", value, "password");
return (Criteria) this;
}
public Criteria andPasswordNotEqualTo(String value) {
addCriterion("Password <>", value, "password");
return (Criteria) this;
}
public Criteria andPasswordGreaterThan(String value) {
addCriterion("Password >", value, "password");
return (Criteria) this;
}
public Criteria andPasswordGreaterThanOrEqualTo(String value) {
addCriterion("Password >=", value, "password");
return (Criteria) this;
}
public Criteria andPasswordLessThan(String value) {
addCriterion("Password <", value, "password");
return (Criteria) this;
}
public Criteria andPasswordLessThanOrEqualTo(String value) {
addCriterion("Password <=", value, "password");
return (Criteria) this;
}
public Criteria andPasswordLike(String value) {
addCriterion("Password like", value, "password");
return (Criteria) this;
}
public Criteria andPasswordNotLike(String value) {
addCriterion("Password not like", value, "password");
return (Criteria) this;
}
public Criteria andPasswordIn(List<String> values) {
addCriterion("Password in", values, "password");
return (Criteria) this;
}
public Criteria andPasswordNotIn(List<String> values) {
addCriterion("Password not in", values, "password");
return (Criteria) this;
}
public Criteria andPasswordBetween(String value1, String value2) {
addCriterion("Password between", value1, value2, "password");
return (Criteria) this;
}
public Criteria andPasswordNotBetween(String value1, String value2) {
addCriterion("Password not between", value1, value2, "password");
return (Criteria) this;
}
public Criteria andBirthIsNull() {
addCriterion("Birth is null");
return (Criteria) this;
}
public Criteria andBirthIsNotNull() {
addCriterion("Birth is not null");
return (Criteria) this;
}
public Criteria andBirthEqualTo(Date value) {
addCriterion("Birth =", value, "birth");
return (Criteria) this;
}
public Criteria andBirthNotEqualTo(Date value) {
addCriterion("Birth <>", value, "birth");
return (Criteria) this;
}
public Criteria andBirthGreaterThan(Date value) {
addCriterion("Birth >", value, "birth");
return (Criteria) this;
}
public Criteria andBirthGreaterThanOrEqualTo(Date value) {
addCriterion("Birth >=", value, "birth");
return (Criteria) this;
}
public Criteria andBirthLessThan(Date value) {
addCriterion("Birth <", value, "birth");
return (Criteria) this;
}
public Criteria andBirthLessThanOrEqualTo(Date value) {
addCriterion("Birth <=", value, "birth");
return (Criteria) this;
}
public Criteria andBirthIn(List<Date> values) {
addCriterion("Birth in", values, "birth");
return (Criteria) this;
}
public Criteria andBirthNotIn(List<Date> values) {
addCriterion("Birth not in", values, "birth");
return (Criteria) this;
}
public Criteria andBirthBetween(Date value1, Date value2) {
addCriterion("Birth between", value1, value2, "birth");
return (Criteria) this;
}
public Criteria andBirthNotBetween(Date value1, Date value2) {
addCriterion("Birth not between", value1, value2, "birth");
return (Criteria) this;
}
public Criteria andSexIsNull() {
addCriterion("Sex is null");
return (Criteria) this;
}
public Criteria andSexIsNotNull() {
addCriterion("Sex is not null");
return (Criteria) this;
}
public Criteria andSexEqualTo(Boolean value) {
addCriterion("Sex =", value, "sex");
return (Criteria) this;
}
public Criteria andSexNotEqualTo(Boolean value) {
addCriterion("Sex <>", value, "sex");
return (Criteria) this;
}
public Criteria andSexGreaterThan(Boolean value) {
addCriterion("Sex >", value, "sex");
return (Criteria) this;
}
public Criteria andSexGreaterThanOrEqualTo(Boolean value) {
addCriterion("Sex >=", value, "sex");
return (Criteria) this;
}
public Criteria andSexLessThan(Boolean value) {
addCriterion("Sex <", value, "sex");
return (Criteria) this;
}
public Criteria andSexLessThanOrEqualTo(Boolean value) {
addCriterion("Sex <=", value, "sex");
return (Criteria) this;
}
public Criteria andSexIn(List<Boolean> values) {
addCriterion("Sex in", values, "sex");
return (Criteria) this;
}
public Criteria andSexNotIn(List<Boolean> values) {
addCriterion("Sex not in", values, "sex");
return (Criteria) this;
}
public Criteria andSexBetween(Boolean value1, Boolean value2) {
addCriterion("Sex between", value1, value2, "sex");
return (Criteria) this;
}
public Criteria andSexNotBetween(Boolean value1, Boolean value2) {
addCriterion("Sex not between", value1, value2, "sex");
return (Criteria) this;
}
public Criteria andSalaryIsNull() {
addCriterion("Salary is null");
return (Criteria) this;
}
public Criteria andSalaryIsNotNull() {
addCriterion("Salary is not null");
return (Criteria) this;
}
public Criteria andSalaryEqualTo(BigDecimal value) {
addCriterion("Salary =", value, "salary");
return (Criteria) this;
}
public Criteria andSalaryNotEqualTo(BigDecimal value) {
addCriterion("Salary <>", value, "salary");
return (Criteria) this;
}
public Criteria andSalaryGreaterThan(BigDecimal value) {
addCriterion("Salary >", value, "salary");
return (Criteria) this;
}
public Criteria andSalaryGreaterThanOrEqualTo(BigDecimal value) {
addCriterion("Salary >=", value, "salary");
return (Criteria) this;
}
public Criteria andSalaryLessThan(BigDecimal value) {
addCriterion("Salary <", value, "salary");
return (Criteria) this;
}
public Criteria andSalaryLessThanOrEqualTo(BigDecimal value) {
addCriterion("Salary <=", value, "salary");
return (Criteria) this;
}
public Criteria andSalaryIn(List<BigDecimal> values) {
addCriterion("Salary in", values, "salary");
return (Criteria) this;
}
public Criteria andSalaryNotIn(List<BigDecimal> values) {
addCriterion("Salary not in", values, "salary");
return (Criteria) this;
}
public Criteria andSalaryBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("Salary between", value1, value2, "salary");
return (Criteria) this;
}
public Criteria andSalaryNotBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("Salary not between", value1, value2, "salary");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
protected Criteria() {
super();
}
}
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;
private String typeHandler;
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;
}
public String getTypeHandler() {
return typeHandler;
}
protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}
protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}
protected Criterion(String condition, Object value) {
this(condition, value, null);
}
protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}
protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}
8.反向生成的介面
package com.lq.dao;
import com.lq.entity.UserBean;
import com.lq.entity.UserBeanExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;
public interface UserBeanMapper {
int countByExample(UserBeanExample example);
int deleteByExample(UserBeanExample example);
int deleteByPrimaryKey(Long id);
int insert(UserBean record);
int insertSelective(UserBean record);
List<UserBean> selectByExample(UserBeanExample example);
UserBean selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") UserBean record, @Param("example") UserBeanExample example);
int updateByExample(@Param("record") UserBean record, @Param(