DbUtils,一個替代JDBC的小工具類
阿新 • • 發佈:2018-12-30
在使用之前需要有一些準備,我使用的是mysql資料庫
這裡建立的就是一個測試類,中間使用的註釋@Test就類似於main函式,可以直接右擊run as————》JUnit Test就可以執行,但是提前是你要有 import org.junit.Test這個包
package com.qf.test; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arrays; import java.util.List; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; import org.apache.commons.dbutils.handlers.ArrayHandler; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.junit.Test; import com.mchange.v2.c3p0.ComboPooledDataSource; import com.qf.entity.Student; //測試類 public class MyTest1 { // 單元測試---實現增刪改 /* * 單元測試方法要求: 1、public修飾 2、無返回值 3、無形式引數 */ @Test public void test1() throws SQLException { // 建立操作物件 QueryRunner qr = new QueryRunner(new ComboPooledDataSource()); // 新增 // 執行非查詢語句,返回受影響的行數 // System.out.println("新增:"+qr.execute("insert into // tb_student(name,age,sex) values(?,?,?)", "李四",21,"男")); // 修改 // System.out.println("修改:"+qr.execute("update tb_student set name=? // where id=?", "小四",2)); // 刪除 System.out.println("刪除:" + qr.execute("delete from tb_student where id=?", 1)); } // 查詢--原生介面 @Test public void test2() throws SQLException { // 執行查詢 QueryRunner qr = new QueryRunner(new ComboPooledDataSource()); // 原生的,直接使用內部的介面完成結果集的賦值 Student stu = qr.query("select * from tb_student where id=2", new ResultSetHandler<Student>() { @Override public Student handle(ResultSet rs) throws SQLException { // TODO Auto-generated method stub Student student = new Student(); if (rs.next()) { student.setAge(rs.getInt("age")); student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setSex(rs.getString("sex")); } return student; } }); System.out.println(stu.getName()); } // 查詢--預設實現,支援物件 @Test public void test3() throws SQLException { // 執行查詢 QueryRunner qr = new QueryRunner(new ComboPooledDataSource()); // 執行查詢,單個物件,需要傳遞對應類的Class物件 Student stu = qr.query("select * from tb_student where id=2", new BeanHandler<>(Student.class)); System.out.println("查詢單個:" + stu.getName()); } // 新增--批處理,支援多個數據新增操作 @Test public void test4() throws SQLException { // 執行查詢 QueryRunner qr = new QueryRunner(new ComboPooledDataSource()); // sql語句 String sql = "insert into tb_student(name,age,sex) values(?,?,?)"; Object[][] vs = new Object[10][3]; for (int i = 0; i < vs.length; i++) { vs[i][0] = "麻子" + i; vs[i][1] = i * 10; vs[i][2] = "女"; } // 執行批處理,返回每條語句的受影響的行數 int[] cs = qr.batch(sql, vs); System.out.println(Arrays.toString(cs)); } //查詢--返回多條資料---集合 @Test public void test5() throws SQLException { // 執行查詢 QueryRunner qr = new QueryRunner(new ComboPooledDataSource()); List<Student> list=qr.query("select * from tb_student", new BeanListHandler<>(Student.class)); for(Student s:list){ System.out.println(s.getName()); } } }
這是最後資料庫的顯示結果