使用dbutils完成curd操作
技術分析:
dbutils
dbutils:
是apache組織的一個工具類,jdbc的框架,更方便我們使用
使用步驟:
1.匯入jar包(commons-dbutils-1.4.jar)
2.建立一個queryrunner類
queryrunner作用:操作sql語句
構造方法:
new QueryRunner(Datasource ds);
3.編寫sql
4.執行sql
query(..):執行r操作
update(...):執行cud操作
////////////////////////////
核心類或介面
QueryRunner:類名
作用:操作sql語句
構造器:
new QueryRunner(Datasource ds);
注意:
底層幫我們建立連線,建立語句執行者 ,釋放資源.
常用方法:
query(..):
update(..):
DbUtils:釋放資源,控制事務 類
closeQuietly(conn):內部處理了異常
commitAndClose(Connection conn):提交事務並釋放連線
....
ResultSetHandler:封裝結果集 介面
ArrayHandler, ArrayListHandler, BeanHandler, BeanListHandler, ColumnListHandler, KeyedHandler, MapHandler, MapListHandler, ScalarHandler
(瞭解)ArrayHandler, 將查詢結果的第一條記錄封裝成陣列,返回
(瞭解)ArrayListHandler, 將查詢結果的每一條記錄封裝成陣列,將每一個陣列放入list中返回
★★BeanHandler, 將查詢結果的第一條記錄封裝成指定的bean物件,返回
★★BeanListHandler, 將查詢結果的每一條記錄封裝成指定的bean物件,將每一個bean物件放入list中 返回.
(瞭解)ColumnListHandler, 將查詢結果的指定一列放入list中返回
(瞭解)MapHandler, 將查詢結果的第一條記錄封裝成map,欄位名作為key,值為value 返回
★MapListHandler, 將查詢結果的每一條記錄封裝map集合,將每一個map集合放入list中返回
★ScalarHandler,針對於聚合函式 例如:count(*) 返回的是一個Long值
import java.sql.SQLException;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;
import com.itheima.utils.DataSourceUtils;
public class CURDDemo {
@Test
public void insert() throws SQLException{
//1.建立queryrunner類
QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
//2.編寫sql
String sql="insert into category values(?,?)";
//3.執行sql
qr.update(sql, "c201","廚房電器");
}
@Test
public void update() throws SQLException{
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
String sql="update category set cname = ? where cid = ?";
qr.update(sql, "達電器","c000");
}
}
import java.sql.SQLException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayHandler;
import org.apache.commons.dbutils.handlers.ArrayListHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import org.junit.Test;
import com.itheima.domain.Category;
import com.itheima.utils.DataSourceUtils;
public class ResultHandleDemo {
@Test
public void arrayHandler() throws SQLException{
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
String sql="select * from category";
Object[] query = qr.query(sql, new ArrayHandler());
System.out.println(Arrays.toString(query));
}
@Test
public void arrayListHandler() throws SQLException{
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
String sql="select * from category";
List<Object[]> list = qr.query(sql, new ArrayListHandler());
for (Object[] obj : list) {
System.out.println(Arrays.toString(obj));
}
}
@Test
public void beanHandler() throws SQLException{
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
String sql="select * from category";
Category bean = qr.query(sql, new BeanHandler<>(Category.class));
System.out.println(bean);
}
@Test
public void beanListHandler() throws SQLException{
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
String sql="select * from category";
List<Category> list = qr.query(sql, new BeanListHandler<>(Category.class));
for (Category bean : list) {
System.out.println(bean);
}
}
@Test
public void mapHandler() throws SQLException{
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
String sql="select * from category";
Map<String, Object> map = qr.query(sql, new MapHandler());
System.out.println(map);
}
@Test
public void mapListHandler() throws SQLException{
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
String sql="select * from category";
List<Map<String, Object>> list = qr.query(sql, new MapListHandler());
for (Map<String, Object> map : list) {
System.out.println(map);
}
}
@Test
public void scalarHandler() throws SQLException{
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
String sql="select count(*) from category";
Object obj = qr.query(sql, new ScalarHandler());
System.out.println(obj.getClass().getName());
}
}
相關文章
- ThinkPHP 的CURD 基本操作PHP
- Go 語言操作 MySQL 之 CURD 操作GoMySql
- go mysql 基礎操作 (CURD)GoMySql
- ElasticSearch CURD Sense 及常用操作Elasticsearch
- MongoDB的安裝及CURD操作MongoDB
- 使用兩個FIFO完成流水操作
- 12 步 30 分鐘,完成使用者管理的 CURD 應用 (react+dva+antd)React
- 使用Reactor完成類似的Flink的操作React
- DvaJS的學習之路2 – umi@2 + dva,完成使用者管理的 CURD 應用JS
- DvaJS的學習之路2 - umi@2 + dva,完成使用者管理的 CURD 應用JS
- Mybatis學習筆記 2:Mybatis 基本的CURD操作MyBatis筆記
- PHP根據資料表自動生成CURD操作PHP
- SQLAlchemy - 模組檔案以及增刪改查(CURD操作)SQL
- 使用tk.mybatis快速開發curdMyBatis
- SmartSql使用教程(2)—使用動態代理實現CURDSQL
- ThinkPHP中CURD where的使用注意事項PHP
- MyBatis入門學習-連線oracle實現CURD基本操作MyBatisOracle
- Dapper CURDAPP
- Yii1使用Gii生成模組實現CURD
- Java篇-DBUtils與連線池Java
- ibatis的CURDBAT
- 使用 Repository 設計模式封裝通用的 CURD設計模式封裝
- Laravel 怎樣來實現,後臺管理員操作詳情 CURD 記錄?Laravel
- ssh新手練手專案——員工curd操作和未登入攔截
- 用Python完成Excel的常用操作PythonExcel
- 利用SQL語句完成位操作 (轉)SQL
- ModuleNotFoundError: No module named ‘DBUtils‘解決辦法Error
- 基於 Dapper 的一個 DbUtilsAPP
- laravel-strongstub 擴充套件:在十秒內建立完成 CURD 增刪改查的邏輯Laravel套件
- Mac技巧|如何高效使用蘋果便箋?利用便箋快捷鍵快速完成操作!Mac蘋果
- SAP取消操作的事務碼-待完成
- Python資料庫連線池DButilsPython資料庫
- Laravel 通用化的 CURDLaravel
- 清倒廢紙簍提示“操作無法完成因為專案xx正在使用”
- 物化檢視如何快速完成資料聚合操作?
- 第一次完成hibernate基本操作
- bo 框架之 beego 框架 model curd框架Go
- 3. 使用Mybatis完成CRUDMyBatis