JUnit使用
JUnit是一个java语言的单元测试框架,因为是第三方框架所以要导jar包的,但是javaIDE里面是有这个包的只需要import下就可以,
一共有三种注解修饰测试的方法,Test、Before、After
@Test public void method() 测试注释指示该公共无效方法它所附着可以作为一个测试用例。
@Before public void method() Before注释表示,该方法必须在类中的每个测试之前执行,以便执行测试某些必要的先决条件。
@After public void method() After 注释指示,该方法在执行每项测试后执行(如执行每一个测试后重置某些变量,删除临时变量等)
package test;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TestDemo01 {
/**
*
*
* <p>
* Title: method
* </p>
*
* <p>
* Description: 单元测试
* </p>
*/
@Test // 修饰要执行的测试 可以存在多个
// 执行的时候要选中Test修饰的方法来运行,(Before、After)不然会报错
public void method1() {
System.out.println("单元测试1");
}
@Test // 修饰要执行的测试
public void method2() {
System.out.println("单元测试2");
}
@Test // 修饰要执行的测试
public void method3() {
System.out.println("单元测试3");
}
/**
*
*
* <p>
* Title: method2
* </p>
*
* <p>
* Description: 测试方法之前运行的方法
* </p>
*/
@Before
public void method01() {
System.out.println("测试之前的方法");
}
/**
*
*
* <p>
* Title: method3
* </p>
*
* <p>
* Description: 测试方法之后运行的方法
* </p>
*/
@After
public void method02() {
System.out.println("测试之后的方法");
}
}
C3P0使用步骤
第一步:引入C3P0连接池的jar包.
第二步:编写代码:
1.手动设置参数: //一般不会用手动配置
2. 配置文件设置参数:
<?xml version="1.0" encoding="UTF-8"?>
<context>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<proerty name="jdbcUrl">jdbc:mtsql://localhost:3306/shop</proerty>
<property name="user">root</property>
<property name="password">123456</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</default-config>
<named-config name="wt">
<!-- 基本配置 必不可少的四个配置 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mtsql://localhost:3306/shop</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 最大空闲时间 -->
<property name="maxIdleTime">30</property>
<!-- 最大的的连接池的数量 -->
<property name="maxPoolSize">100</property>
<!-- 最小的连接池的数量 -->
<property name="minPoolSize">10</property>
<!-- 连接池能保持打开的最大数量 -->
<property name="maxStatements">200</property>
</named-config>
</context>
DBUtisl使用
DBUtils是java编程中的数据库操作实用工具,小巧简单实用。DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码
Dbutils三个核心功能介绍
-QueryRunner中提供对sql语句操作的API
-ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
-DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法
我们知道在执行select语句之后得到的是ResultSet,然后我们还需要对ResultSet进行转换,得到最终我们想要的数据。你可以希望把ResultSet的数据放到一个List中,也可能想把数据放到一个Map中,或是一个Bean中。
DBUtils提供了一个接口ResultSetHandler,它就是用来ResultSet转换成目标类型的工具。你可以自己去实现这个接口,把ResultSet转换成你想要的类型。
DBUtils提供了很多个ResultSetHandler接口的实现,这些实现已经基本够用了,我们通常不用自己去实现ResultSet接口了。
QueryRunner核心类
QueryRunner(DataSource ds), 提供数据源(连接池), DBUtils底层自动维护连接connection
update(String sql, Object... params) , 执行更新数据
query(String sql, ResultSetHandler<T> rsh, Object... params) , 执行查询
BeanHandler: 单行处理器!把结果集转换成Bean,该处理器需要Class参数,即Bean的类型;
BeanListHandler: 多行处理器!把结果集转换成List<Bean>;
public List<Product> findAllProduct() throws SQLException {
/*创建QueryRunner*/
QueryRunner queryRunner2 = new QueryRunner(C3P0UTils.getDataSource());
/*书写sql语句*/
String sql = "select * from product";
//调用query方法返回对个对象 使用BeanListHandler处理接收到的结果
List<Product> list = QUERYRUNNER.query(sql, new BeanListHandler<Product>(Product.class));
//返回数据
return list;
}
ScalarHandler: 单行单列处理器!把结果集转换成Object。一般用于聚集查询, 例如select count(*) from tab_student。
/**
*
* <p>Title: productCount</p>
* <p>Description:获取总的商品条数 </p>
* @return
* @throws SQLException
*/
public int productCount() throws SQLException {
/*创建QueryRunner*/
QueryRunner queryRunner2 = new QueryRunner(C3P0UTils.getDataSource());
/*书写sql语句*/
String sql = "select count(*) from product";
//Long包装类
Long count = (Long) QUERYRUNNER.query(sql, new ScalarHandler());
//强制转换成int类型
return count.intValue();
}
MapListHandler 多行处理器 List<Map<String,object>>---------该处理器使用的较少