Junit测试打印日志
maven项目构建
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zmq</groupId>
<artifactId>database-test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.build.timestamp.format>yyMMdd</maven.build.timestamp.format>
<runtime.version>1.8</runtime.version>
<autoconfig-plugin-version>1.2</autoconfig-plugin-version>
<spring-version>4.2.1.RELEASE</spring-version>
<spring-amqp-version>1.5.1.RELEASE</spring-amqp-version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring-version}</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
<!--oracle-->
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>6</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--druid-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.11</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
<scope>provided</scope>
</dependency>
<!--日志-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
log4j.properties
### 设置Logger输出级别和输出目的地 ### debug更详细,如果设为info那么打印出的表数据遇到字符串就不显示,此外还有logfile
log4j.rootLogger=debug,stdout
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
### 把日志信息输出到文件:jbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
log4j.logger.mapperNS =TRACE
###显示SQL语句部分
log4j.logger.com.mybatis=DEBUG
log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
# 设置不打印springframework.apache等多余信息
log4j.logger.org.springframework=error
log4j.logger.org.apache=ERROR
log4j.logger.org.mybatis=ERROR
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>
<settings>
<setting name="cacheEnabled" value="true" />
<setting name="lazyLoadingEnabled" value="false" />
<setting name="multipleResultSetsEnabled" value="true" />
<setting name="useColumnLabel" value="true" />
<setting name="useGeneratedKeys" value="true" />
<setting name="defaultExecutorType" value="SIMPLE" />
<setting name="defaultStatementTimeout" value="25" />
</settings>
<typeAliases>
<package name="mapper" />
</typeAliases>
</configuration>
dao-test.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="datasource-test.xml" />
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:/mybatis-config.xml" />
<property name="mapperLocations">
<list>
<value>
classpath:/OrderMapper.xml
</value>
</list>
</property>
</bean>
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="mapper" />
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean>
</beans>
datasource-test.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<!-- 数据库 url -->
<property name="url" value="jdbc:oracle:thin:@local:test" />
<!-- 配置密码加密和统计相关参数,统计慢sql的单位为毫秒,超过1秒钟的sql为慢sql -->
<property name="username" value="null" />
<property name="password" value="null" />
<property name="filters" value="config,stat" />
<property name="connectionProperties"
value="druid.stat.slowSqlMillis=1000;druid.stat.logSlowSql=true;druid.stat.mergeSql=true" />
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="5" />
<property name="minIdle" value="5" />
<property name="maxActive" value="100" />
<property name="maxWait" value="1000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,相当于C3P0的idleConnectionTestPeriod 参数,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="140000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="numTestsPerEvictionRun" value="3" />
<!-- 测试连接,单位为毫秒 -->
<property name="validationQueryTimeout" value="1000" />
<property name="validationQuery" value="SELECT 1 from dual" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<!-- 如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="50" />
</bean>
</beans>
OrderMapper.xml
<?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="mapper.OrderMapper">
<resultMap id="BaseResultMap" type="mapper.Order">
<id column="ID" jdbcType="BIGINT" property="id" />
<result column="ORDER_NO" jdbcType="VARCHAR" property="orderNo" />
<result column="CREATED_TIME" jdbcType="TIMESTAMP" property="createdTime" />
<result column="CREATED_PERSON" jdbcType="VARCHAR" property="createdPerson" />
<result column="UPDATED_TIME" jdbcType="TIMESTAMP" property="updatedTime" />
<result column="UPDATED_PERSON" jdbcType="VARCHAR" property="updatedPerson" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
<if test="rownum" >
(
</if>
<foreach collection="oredCriteria" item="criteria" separator="or">
<if test="criteria.valid">
<trim prefix="(" prefixOverrides="and" suffix=")">
<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 close=")" collection="criterion.value" item="listItem" open="(" separator=",">
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
<if test="rownum">
)
</if>
</where>
</sql>
<sql id="Base_Column_List">
ID, ORDER_NO,
CREATED_PERSON, UPDATED_TIME, UPDATED_PERSON,
</sql>
<select id="selectByExample" parameterType="mapper.OrderExample" resultMap="BaseResultMap">
select
<if test="distinct">
distinct
</if>
<include refid="Base_Column_List" />
from T_THIRD_TAXI_ORDER
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null">
order by ${orderByClause}
</if>
<if test="rownum">
and ROWNUM <![CDATA[ < ]]> 1000
</if>
</select>
<select id="selectByPrimaryKey" parameterType="long" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from T_THIRD_TAXI_ORDER
where ID = #{id,jdbcType=BIGINT}
</select>
<delete id="deleteByPrimaryKey" parameterType="long">
delete from T_THIRD_TAXI_ORDER
where ID = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="mapper.Order">
<selectKey keyProperty="id" order="BEFORE" resultType="long">
SELECT SEQ_THIRD_TAXI_ORDER.NEXTVAL FROM DUAL
</selectKey>
insert into T_THIRD_TAXI_ORDER (ID, ORDER_NO,CREATED_TIME,
CREATED_PERSON, UPDATED_TIME, UPDATED_PERSON,
)
values (#{id,jdbcType=BIGINT}, #{orderNo,jdbcType=VARCHAR}, #{createdTime,jdbcType=TIMESTAMP},
#{createdPerson,jdbcType=VARCHAR}, #{updatedTime,jdbcType=TIMESTAMP}, #{updatedPerson,jdbcType=VARCHAR})
</insert>
<select id="countByExample" parameterType="mapper.OrderExample" resultType="java.lang.Long">
select count(*) from T_THIRD_TAXI_ORDER
<if test="_parameter != null">
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByPrimaryKeySelective" parameterType="mapper.Order">
update T_THIRD_TAXI_ORDER
<set>
<if test="orderNo != null">
ORDER_NO = #{orderNo,jdbcType=VARCHAR},
</if>
<if test="createdTime != null">
CREATED_TIME = #{createdTime,jdbcType=TIMESTAMP},
</if>
<if test="createdPerson != null">
CREATED_PERSON = #{createdPerson,jdbcType=VARCHAR},
</if>
<if test="updatedTime != null">
UPDATED_TIME = #{updatedTime,jdbcType=TIMESTAMP},
</if>
<if test="updatedPerson != null">
UPDATED_PERSON = #{updatedPerson,jdbcType=VARCHAR},
</if>
</set>
where ID = #{id,jdbcType=BIGINT}
</update>
<select id="selectByPager" parameterType="java.util.Map" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
<![CDATA[
FROM (
SELECT A.*, ROWNUM RN FROM(
SELECT * FROM T_THIRD_TAXI_ORDER T WHERE
T.ORDER_STATE = #{orderState,jdbcType=CHAR} AND
T.CREATED_TIME > #{startTime,jdbcType=TIMESTAMP} AND
T.CREATED_TIME <= #{endTime,jdbcType=TIMESTAMP}
ORDER BY T.CREATED_TIME) A
) WHERE RN <= #{end,jdbcType=VARCHAR} AND RN > #{begin,jdbcType=VARCHAR}
]]>
</select>
</mapper>
OrderMapper
package mapper;
import java.util.List;
import java.util.Map;
public interface OrderMapper {
long countByExample(OrderExample example);
int deleteByPrimaryKey(long id);
int insert(Order record);
List<ThirdTaxiOrder> selectByExample(OrderExample example);
ThirdTaxiOrder selectByPrimaryKey(long id);
int updateByPrimaryKeySelective(Order record);
List<ThirdTaxiOrder> selectByPager(Map<String, Object> map);
}
Order
package mapper;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import java.io.Serializable;
import java.util.Date;
@Setter
@Getter
@ToString
public class Order implements Serializable {
private static final long serialVersionUID = 1L;
private long id;
private String orderNo;
private Date createdTime;
private String createdPerson;
private Date updatedTime;
private String updatedPerson;
}
OrderExample
package mapper;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class OrderExample {
protected String orderByClause;
protected boolean distinct;
protected boolean rownum;
protected List<Criteria> oredCriteria;
public OrderExample() {
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 void setRownum(boolean rownum) {
this.rownum = rownum;
}
public boolean isRownum() {
return rownum;
}
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 andOrderNoIsNull() {
addCriterion("ORDER_NO is null");
return (Criteria) this;
}
public Criteria andOrderNoIsNotNull() {
addCriterion("ORDER_NO is not null");
return (Criteria) this;
}
public Criteria andOrderNoEqualTo(String value) {
addCriterion("ORDER_NO =", value, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoNotEqualTo(String value) {
addCriterion("ORDER_NO <>", value, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoGreaterThan(String value) {
addCriterion("ORDER_NO >", value, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoGreaterThanOrEqualTo(String value) {
addCriterion("ORDER_NO >=", value, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoLessThan(String value) {
addCriterion("ORDER_NO <", value, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoLessThanOrEqualTo(String value) {
addCriterion("ORDER_NO <=", value, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoLike(String value) {
addCriterion("ORDER_NO like", value, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoNotLike(String value) {
addCriterion("ORDER_NO not like", value, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoIn(List<String> values) {
addCriterion("ORDER_NO in", values, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoNotIn(List<String> values) {
addCriterion("ORDER_NO not in", values, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoBetween(String value1, String value2) {
addCriterion("ORDER_NO between", value1, value2, "orderNo");
return (Criteria) this;
}
public Criteria andOrderNoNotBetween(String value1, String value2) {
addCriterion("ORDER_NO not between", value1, value2, "orderNo");
return (Criteria) this;
}
public Criteria andCreatedTimeIsNull() {
addCriterion("CREATED_TIME is null");
return (Criteria) this;
}
public Criteria andCreatedTimeIsNotNull() {
addCriterion("CREATED_TIME is not null");
return (Criteria) this;
}
public Criteria andCreatedTimeEqualTo(Date value) {
addCriterion("CREATED_TIME =", value, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedTimeNotEqualTo(Date value) {
addCriterion("CREATED_TIME <>", value, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedTimeGreaterThan(Date value) {
addCriterion("CREATED_TIME >", value, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedTimeGreaterThanOrEqualTo(Date value) {
addCriterion("CREATED_TIME >=", value, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedTimeLessThan(Date value) {
addCriterion("CREATED_TIME <", value, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedTimeLessThanOrEqualTo(Date value) {
addCriterion("CREATED_TIME <=", value, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedTimeIn(List<Date> values) {
addCriterion("CREATED_TIME in", values, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedTimeNotIn(List<Date> values) {
addCriterion("CREATED_TIME not in", values, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedTimeBetween(Date value1, Date value2) {
addCriterion("CREATED_TIME between", value1, value2, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedTimeNotBetween(Date value1, Date value2) {
addCriterion("CREATED_TIME not between", value1, value2, "createdTime");
return (Criteria) this;
}
public Criteria andCreatedPersonIsNull() {
addCriterion("CREATED_PERSON is null");
return (Criteria) this;
}
public Criteria andCreatedPersonIsNotNull() {
addCriterion("CREATED_PERSON is not null");
return (Criteria) this;
}
public Criteria andCreatedPersonEqualTo(String value) {
addCriterion("CREATED_PERSON =", value, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonNotEqualTo(String value) {
addCriterion("CREATED_PERSON <>", value, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonGreaterThan(String value) {
addCriterion("CREATED_PERSON >", value, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonGreaterThanOrEqualTo(String value) {
addCriterion("CREATED_PERSON >=", value, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonLessThan(String value) {
addCriterion("CREATED_PERSON <", value, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonLessThanOrEqualTo(String value) {
addCriterion("CREATED_PERSON <=", value, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonLike(String value) {
addCriterion("CREATED_PERSON like", value, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonNotLike(String value) {
addCriterion("CREATED_PERSON not like", value, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonIn(List<String> values) {
addCriterion("CREATED_PERSON in", values, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonNotIn(List<String> values) {
addCriterion("CREATED_PERSON not in", values, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonBetween(String value1, String value2) {
addCriterion("CREATED_PERSON between", value1, value2, "createdPerson");
return (Criteria) this;
}
public Criteria andCreatedPersonNotBetween(String value1, String value2) {
addCriterion("CREATED_PERSON not between", value1, value2, "createdPerson");
return (Criteria) this;
}
public Criteria andUpdatedTimeIsNull() {
addCriterion("UPDATED_TIME is null");
return (Criteria) this;
}
public Criteria andUpdatedTimeIsNotNull() {
addCriterion("UPDATED_TIME is not null");
return (Criteria) this;
}
public Criteria andUpdatedTimeEqualTo(Date value) {
addCriterion("UPDATED_TIME =", value, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedTimeNotEqualTo(Date value) {
addCriterion("UPDATED_TIME <>", value, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedTimeGreaterThan(Date value) {
addCriterion("UPDATED_TIME >", value, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedTimeGreaterThanOrEqualTo(Date value) {
addCriterion("UPDATED_TIME >=", value, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedTimeLessThan(Date value) {
addCriterion("UPDATED_TIME <", value, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedTimeLessThanOrEqualTo(Date value) {
addCriterion("UPDATED_TIME <=", value, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedTimeIn(List<Date> values) {
addCriterion("UPDATED_TIME in", values, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedTimeNotIn(List<Date> values) {
addCriterion("UPDATED_TIME not in", values, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedTimeBetween(Date value1, Date value2) {
addCriterion("UPDATED_TIME between", value1, value2, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedTimeNotBetween(Date value1, Date value2) {
addCriterion("UPDATED_TIME not between", value1, value2, "updatedTime");
return (Criteria) this;
}
public Criteria andUpdatedPersonIsNull() {
addCriterion("UPDATED_PERSON is null");
return (Criteria) this;
}
public Criteria andUpdatedPersonIsNotNull() {
addCriterion("UPDATED_PERSON is not null");
return (Criteria) this;
}
public Criteria andUpdatedPersonEqualTo(String value) {
addCriterion("UPDATED_PERSON =", value, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonNotEqualTo(String value) {
addCriterion("UPDATED_PERSON <>", value, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonGreaterThan(String value) {
addCriterion("UPDATED_PERSON >", value, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonGreaterThanOrEqualTo(String value) {
addCriterion("UPDATED_PERSON >=", value, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonLessThan(String value) {
addCriterion("UPDATED_PERSON <", value, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonLessThanOrEqualTo(String value) {
addCriterion("UPDATED_PERSON <=", value, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonLike(String value) {
addCriterion("UPDATED_PERSON like", value, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonNotLike(String value) {
addCriterion("UPDATED_PERSON not like", value, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonIn(List<String> values) {
addCriterion("UPDATED_PERSON in", values, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonNotIn(List<String> values) {
addCriterion("UPDATED_PERSON not in", values, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonBetween(String value1, String value2) {
addCriterion("UPDATED_PERSON between", value1, value2, "updatedPerson");
return (Criteria) this;
}
public Criteria andUpdatedPersonNotBetween(String value1, String value2) {
addCriterion("UPDATED_PERSON not between", value1, value2, "updatedPerson");
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);
}
}
}
测试基类
import mapper.ThirdTaxiOrderMapper;
import org.apache.ibatis.io.ResolverUtil;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PropertyConfigurator;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public abstract class Test {
protected ThirdTaxiOrderMapper thirdTaxiOrderMapper;
private ApplicationContext ctx = null;
@Before
public void init() {
/*PropertyConfigurator.configure(ResolverUtil.Test.class.getClassLoader().getResource("log4j.properties"));
BasicConfigurator.configure();*/
ctx = new ClassPathXmlApplicationContext("classpath:/dao-test.xml");
thirdTaxiOrderMapper = (ThirdTaxiOrderMapper) ctx.getBean("thirdTaxiOrderMapper");
}
@Test
public abstract void testMethods();
}
测试类
import mapper.Order;
import mapper.OrderExample;
import util.DateTimeUtils;
import util.RandomNumberUtil;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class OrderMapperTest extends Test {
private void selectInitByPager() {
OrderExample example = new OrderExample();
try {
example.createCriteria().andOrderStateEqualTo("01")
.andCreatedTimeGreaterThan(DateTimeUtils.getStringToDateTime("2017-1-30", DateTimeUtils.DATE_FORMAT_YYYY_MM_DD))
.andCreatedTimeLessThan(DateTimeUtils.getStringToDateTime("2018-11-15", DateTimeUtils.DATE_FORMAT_YYYY_MM_DD))
;
example.getOredCriteria().add(example.createCriteria().andOrderStateEqualTo("06")
.andUpdatedTimeLessThan(DateTimeUtils.getStringToDateTime("2018-11-1", DateTimeUtils.DATE_FORMAT_YYYY_MM_DD)));
} catch (Exception e) {
e.printStackTrace();
}
List<ThirdTaxiOrder> thirdTaxiOrders = thirdTaxiOrderMapper.selectByExample(example);
if (thirdTaxiOrders != null) {
System.out.println(thirdTaxiOrders.size());
for (ThirdTaxiOrder thirdTaxiOrder : thirdTaxiOrders) {
System.out.println(thirdTaxiOrder.getOrderNo());
}
}
}
@Override
public void testMethods() {
selectInitByPager();
}
测试结果
com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 ThirdTaxiOrderMapperTest
INFO - {dataSource-1} inited
DEBUG - ==> Preparing: select ID, ORDER_NO,CREATED_TIME, CREATED_PERSON, UPDATED_TIME, UPDATED_PERSON from T_ORDER WHERE ( ORDER_NO = ? and CREATED_TIME > ? and CREATED_TIME < ? ) or( ORDER_NO = ? and UPDATED_TIME < ? )
DEBUG - ==> Parameters: 01(String), 2017-01-30 00:00:00.0(Timestamp), 2018-11-15 00:00:00.0(Timestamp), 06(String), 2018-11-01 00:00:00.0(Timestamp)
DEBUG - <== Total: 3208
DEBUG - {conn-10005, pstmt-20000} enter cache
3208
Process finished with exit code 0