JUnit、C3P0、jdbc、DBUtisl的使用

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>>---------该处理器使用的较少

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值