第一步:導入jar包
-
導入mysql的驅動包
mysql-connector-java-8.0.11.jar
-
導入C3P0的jar包
c3p0-0.9.5.2.jar
mchange-commons-java-0.2.11.jar
在src目錄下添加c3p0-config.xml配置檔案
- 導入commons-dbutils-1.6.jar
-
導入JUnit測試包
junit-4.12.jar
hamcrest-core-1.3.jar
【JDBC】DBUtils操作資料庫,增删改查
DBUtils
将jdbc進行封裝,業務實作上,開發,執行 mybatis dbutils元件提供了一組API
增加dbutils元件jar API
query.update(sql,params); 執行ddl dml中insert update delete
query.query(sql,ResultSetHandler,params)
ResultSetHandler:
處理查詢出來的一條記錄 User類型對象
查詢出多條記錄 List
select count(*) from tbl_user
編寫測試類
public class TeacherTest {
private QueryRunner query=null;
private ComboPooledDataSource dataSource=new ComboPooledDataSource();
@Before
/**
@Before标注過的方法是針對這個類檔案中所有的@Test标注過的測試方法,
每一個@Test方法執行前都需要去執行一遍@Before标注的setup()方法。*/
public void before(){
query=new QueryRunner(dataSource);
}
//測試連接配接有沒有成功
@Test
public void testC3p0() {
try {
Connection connection = dataSource.getConnection();
//輸出連接配接的資料庫名字
System.out.println(connection.getCatalog());
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Test
/*插入資料*/
public void testInsert(){
String sql="insert into teacher values(?,?)";
Object[] params={05,"bigdata"};
try {
int rs=query.update(sql,params);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Test
/*根據ID查找*/
public void testFindById(){
//要變成實體對象傳回,是以要添加實體類
String sql="select * from teacher where t_id=?";
//ResultSetHandler<T> 對結果集處理的類
//處理查詢出來的一條記錄 Teacher類型對象
//查詢出多條記錄 List<Teacher>
//select count(*) from teacher
Teacher teacher=null;
try {
//完成反射,将查詢記錄執行個體化為teacher對象
//類名和字段名要相同
teacher=query.query(sql, new BeanHandler<Teacher>(Teacher.class), 5);
}catch (Exception e){
e.printStackTrace();
}
System.out.println(teacher);
}
@Test
/**
* 驗證密碼和使用者名是否一緻
* 根據使用者名,和密碼查詢,如果有記錄,則表示使用者名密碼一緻
*/
public void UserNamePassword(){
String sql="select * from teacher where t_id=? and t_name=?";
Teacher teacher=null;
try{
teacher=query.query(sql,new BeanHandler<Teacher>(Teacher.class),01,"葉平");
}catch (Exception e){
e.printStackTrace();
}
System.out.println(teacher);
}
@Test
/**
* 查詢所有資料
*/
public void testFindAll(){
String sql="select * from teacher";
List<Teacher> list=null;
try{
//傳回一個集合
list=query.query(sql,new BeanListHandler<Teacher>(Teacher.class));
}catch (Exception e){
e.printStackTrace();
}
for(Teacher t:list){
System.out.println(t);
}
}
@Test
/**
* 分頁查詢
*/
public void testFindPage(){
String sql="select * from teacher limit ?,?";
List<Teacher> list=null;
try{
list=query.query(sql,new BeanListHandler<Teacher>(Teacher.class),4,2);
}catch (Exception e){
e.printStackTrace();
}
for(Teacher t:list){
System.out.println(t);
}
}
@Test
/**
*
* 傳回的結果是一個數字,使用 ScalarHandler<Long>
*/
public void testCount(){
String sql="select count(*) from teacher";
long count=-1;
try {
count=query.query(sql, new ScalarHandler < Long > ());
}catch (Exception e){
e.printStackTrace();
}
System.out.println(count);
}
}
建立實體類
package com.kgc.one.entity;
public class Teacher {
private int t_id;
private String t_name;
public Teacher(){}
public Teacher(int t_id, String t_name) {
this.t_id = t_id;
this.t_name = t_name;
}
public int getT_id() {
return t_id;
}
public void setT_id(int t_id) {
this.t_id = t_id;
}
public String getT_name() {
return t_name;
}
public void setT_name(String t_name) {
this.t_name = t_name;
}
@Override
public String toString() {
return "Teacher{" +
"t_id=" + t_id +
", t_name='" + t_name + '\'' +
'}';
}
}