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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在pom.xml文件中添加Curator和JUnit4的依赖: ```xml <dependencies> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>5.1.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-test</artifactId> <version>5.1.0</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies> ``` 然后,可以编写如下的测试方法: ```java import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.framework.recipes.cache.NodeCache; import org.apache.curator.framework.recipes.cache.NodeCacheListener; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.data.Stat; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; public class CuratorTest { private static final String ZK_ADDRESS = "localhost:2181"; private static final String NAMESPACE = "niit"; private static final String PATH = "/foo/bar"; private static CuratorFramework client; private static NodeCache nodeCache; @BeforeClass public static void setUp() throws Exception { client = CuratorFrameworkFactory.builder() .connectString(ZK_ADDRESS) .retryPolicy(new ExponentialBackoffRetry(1000, 3)) .namespace(NAMESPACE) .build(); client.start(); nodeCache = new NodeCache(client, PATH); nodeCache.getListenable().addListener(new NodeCacheListener() { @Override public void nodeChanged() throws Exception { byte[] data = nodeCache.getCurrentData().getData(); Stat stat = nodeCache.getCurrentData().getStat(); System.out.println(String.format("Node data changed: %s, version: %d", new String(data), stat.getVersion())); } }); nodeCache.start(true); } @Test public void testCreate() throws Exception { String data = "hello world"; client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).forPath(PATH, data.getBytes()); byte[] result = client.getData().forPath(PATH); assertNotNull(result); assertEquals(data, new String(result)); } @Test public void testUpdate() throws Exception { String data = "updated"; client.setData().forPath(PATH, data.getBytes()); byte[] result = client.getData().forPath(PATH); assertNotNull(result); assertEquals(data, new String(result)); } @Test public void testDelete() throws Exception { client.delete().deletingChildrenIfNeeded().forPath(PATH); Stat stat = client.checkExists().forPath(PATH); assertEquals(null, stat); } @AfterClass public static void tearDown() throws Exception { nodeCache.close(); client.close(); } } ``` 这个测试方法包含三个测试用例,分别测试了创建、修改和删除节点。在setUp()方法中,创建了一个Curator客户端和一个NodeCache实例,并注册了一个监听器,在节点数据发生变化时打印相关信息。在每个测试用例中,我们使用Curator客户端操作ZooKeeper服务器,并断言操作的正确性。在tearDown()方法中,关闭了NodeCache和Curator客户端。 这些测试用例可以通过以下命令运行: ``` mvn test ``` 如果一切正常,你应该能够看到NodeCache监听器输出的信息。也就是说,NodeCache的监听事件确实被触发了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值