Example的一些常用方法
1、 创建数据库
/*
Navicat Premium Data Transfer
Source Server : 192.168.1.100
Source Server Type : MySQL
Source Server Version : 50621
Source Host : 192.168.1.100:3306
Source Schema : ag_admin_v6
Target Server Type : MySQL
Target Server Version : 50621
File Encoding : 65001
Date: 24/06/2020 16:18:58
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for upd_log
-- ----------------------------
DROP TABLE IF EXISTS `upd_log`;
CREATE TABLE `upd_log` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '版本更新日志id',
`version_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '版本号',
`update_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '版本更新内容',
`update_status` int(11) NULL DEFAULT NULL COMMENT '版本更新状态1:未更新。2.已经更新',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '版本更新时间',
`show_day` int(11) NULL DEFAULT NULL COMMENT '版本更新在首页展示天数',
`del_status` int(11) NULL DEFAULT NULL COMMENT '删除状态.1:未删除。2.已经删除',
`crt_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`crt_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人ID',
`crt_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`crt_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建IP',
`upd_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
`upd_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人ID',
`upd_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`upd_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新IP',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '更新的日志记录表' ROW_FORMAT = Compact;
-- ----------------------------
-- Records of upd_log
-- ----------------------------
INSERT INTO `upd_log` VALUES (1, '1.1.1', '版本更', 2, '2020-06-24 13:16:08', NULL, NULL, '2020-06-24 10:56:05', '1', '超级管理员', NULL, '2020-06-24 13:30:23', '1', '超级管理员', NULL);
INSERT INTO `upd_log` VALUES (2, '1.1.2', '新版本更新', 1, NULL, NULL, NULL, '2020-06-24 13:31:15', '1', '超级管理员', NULL, '2020-06-24 13:31:58', '1', '超级管理员', NULL);
SET FOREIGN_KEY_CHECKS = 1;
2、 生成的实体类
package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
/**
* 更新的日志记录表
*
* @author qianlj
* @email smallk13@163.com
* @date 2020-06-23 18:20:26
*/
@Table(name = "upd_log")
public class UpdLog implements Serializable {
private static final long serialVersionUID = 1L;
//版本更新日志id
@Id
private Integer id;
//版本号
@Column(name = "version_number")
private String versionNumber;
//版本更新内容
@Column(name = "update_content")
private String updateContent;
//版本更新状态1:未更新。2.已经更新
@Column(name = "update_status")
private Integer updateStatus;
//版本更新时间
@Column(name = "update_time")
private Date updateTime;
//版本更新在首页展示天数
@Column(name = "show_day")
private Integer showDay;
//删除状态.1:未删除。2.已经删除
@Column(name = "del_status")
private Integer delStatus;
//创建时间
@Column(name = "crt_time")
private Date crtTime;
//创建人ID
@Column(name = "crt_user")
private String crtUser;
//创建人
@Column(name = "crt_name")
private String crtName;
//创建IP
@Column(name = "crt_host")
private String crtHost;
//更新时间
@Column(name = "upd_time")
private Date updTime;
//更新人ID
@Column(name = "upd_user")
private String updUser;
//更新人
@Column(name = "upd_name")
private String updName;
//更新IP
@Column(name = "upd_host")
private String updHost;
/**
* 设置:版本更新日志id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* 获取:版本更新日志id
*/
public Integer getId() {
return id;
}
/**
* 设置:版本号
*/
public void setVersionNumber(String versionNumber) {
this.versionNumber = versionNumber;
}
/**
* 获取:版本号
*/
public String getVersionNumber() {
return versionNumber;
}
/**
* 设置:版本更新内容
*/
public void setUpdateContent(String updateContent) {
this.updateContent = updateContent;
}
/**
* 获取:版本更新内容
*/
public String getUpdateContent() {
return updateContent;
}
/**
* 设置:版本更新状态1:未更新。2.已经更新
*/
public void setUpdateStatus(Integer updateStatus) {
this.updateStatus = updateStatus;
}
/**
* 获取:版本更新状态1:未更新。2.已经更新
*/
public Integer getUpdateStatus() {
return updateStatus;
}
/**
* 设置:版本更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* 获取:版本更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* 设置:版本更新在首页展示天数
*/
public void setShowDay(Integer showDay) {
this.showDay = showDay;
}
/**
* 获取:版本更新在首页展示天数
*/
public Integer getShowDay() {
return showDay;
}
/**
* 设置:删除状态.1:未删除。2.已经删除
*/
public void setDelStatus(Integer delStatus) {
this.delStatus = delStatus;
}
/**
* 获取:删除状态.1:未删除。2.已经删除
*/
public Integer getDelStatus() {
return delStatus;
}
/**
* 设置:创建时间
*/
public void setCrtTime(Date crtTime) {
this.crtTime = crtTime;
}
/**
* 获取:创建时间
*/
public Date getCrtTime() {
return crtTime;
}
/**
* 设置:创建人ID
*/
public void setCrtUser(String crtUser) {
this.crtUser = crtUser;
}
/**
* 获取:创建人ID
*/
public String getCrtUser() {
return crtUser;
}
/**
* 设置:创建人
*/
public void setCrtName(String crtName) {
this.crtName = crtName;
}
/**
* 获取:创建人
*/
public String getCrtName() {
return crtName;
}
/**
* 设置:创建IP
*/
public void setCrtHost(String crtHost) {
this.crtHost = crtHost;
}
/**
* 获取:创建IP
*/
public String getCrtHost() {
return crtHost;
}
/**
* 设置:更新时间
*/
public void setUpdTime(Date updTime) {
this.updTime = updTime;
}
/**
* 获取:更新时间
*/
public Date getUpdTime() {
return updTime;
}
/**
* 设置:更新人ID
*/
public void setUpdUser(String updUser) {
this.updUser = updUser;
}
/**
* 获取:更新人ID
*/
public String getUpdUser() {
return updUser;
}
/**
* 设置:更新人
*/
public void setUpdName(String updName) {
this.updName = updName;
}
/**
* 获取:更新人
*/
public String getUpdName() {
return updName;
}
/**
* 设置:更新IP
*/
public void setUpdHost(String updHost) {
this.updHost = updHost;
}
/**
* 获取:更新IP
*/
public String getUpdHost() {
return updHost;
}
}
3、编写代码
3.1、根据某个或者多个条件并且(AND)查询
Example example = new Example(UpdLog.class);
Criteria createCriteria = example.createCriteria();
createCriteria.andEqualTo("crtUser", 1);//设置用户id
createCriteria.andEqualTo("updateStatus", 1);//设置状态
List<UpdLog> updLogList = updLogMapper.selectByExample(example);
相当于:select * from upd_log where crt_user = 1 and update_status = 1;
3.2、根据某个条件不等于(!=)进行查询
Example example = new Example(UpdLog.class);
Criteria createCriteria = example.createCriteria();
createCriteria.andEqualTo("crtUser", 1);//设置用户id
createCriteria.andNotEqualTo("updateStatus", 1);//设置状态
List<UpdLog> updLogList = updLogMapper.selectByExample(example);
相当于:select * from upd_log where crt_user = 1 and update_status != 1;
3.3、根据多个条件或者(OR)进行查询
Example example = new Example(UpdLog.class);
Criteria createCriteria1 = example.createCriteria();
Criteria createCriteria2 = example.createCriteria();
Criteria createCriteria3 = example.createCriteria();
createCriteria1.andEqualTo("crtUser", 1);//设置创建用户id
createCriteria2.andEqualTo("updateStatus", 2);//设置状态
createCriteria3.andEqualTo("updUser", 1);//设置更新用户id
example.or(createCriteria2);
example.or(createCriteria3);
List<UpdLog> updLogList = updLogMapper.selectByExample(example);
相当于:select * from upd_log where crt_user = 1 or update_status = 2 or upd_user = 2;
3.4、排序
Example example = new Example(UpdLog.class);
Criteria createCriteria = example.createCriteria();
example.setOrderByClause("crt_time desc");//根据crt_time 升序。crt_time 要与数据库中字段名一致
createCriteria.andEqualTo("crtUser", 1);//设置创建用户id
List<UpdLog> updLogList = updLogMapper.selectByExample(example);
相当于:select * from upd_log where crt_user = 1 ORDER BY crt_time DESC;
3.5、模糊查询
String str = "新";
Example example = new Example(UpdLog.class);
Criteria createCriteria = example.createCriteria();
createCriteria.andEqualTo("crtUser", 1);//设置创建用户id
createCriteria.andLike("updateContent", "%"+str+"%");
List<UpdLog> updLogList = updLogMapper.selectByExample(example);
相当于:SELECT * FROM upd_log WHERE crt_user = 1 AND update_content LIKE “%新%”;