使用DButils對資料庫進行操作
JDBCTools類:import java.sql.Connection; import java.sql.Date; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultSetHandler; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.dbutils.handlers.MapListHandler; import org.apache.commons.dbutils.handlers.ScalarHandler; import org.junit.Test; /** * DButils工具的使用 * @author wushijia * */ public class Test_dbutils { /** * 使用DButils進行資料庫的更新操作 */ @Test public void test1(){ Connection con = null; //1、建立QueryRunner的物件例項 QueryRunner queryRunner = new QueryRunner(); String sql = "INSERT INTO customer(id,name,date) VALUES(?,?,?)"; try { con = JDBCTools.getConnection(); //2、呼叫其update方法 queryRunner.update(con, sql, 2,"Jerry",new Date(new java.util.Date().getTime())); } catch (Exception e) { e.printStackTrace(); } finally { JDBCTools.releaseDB(null, null, con); } } /** * 自己實現handle方法來測試query */ @Test public void testResultSetHandle(){ Connection con = null; QueryRunner queryRunner = new QueryRunner(); String sql = "SELECT id,name,date FROM customer"; try { con = JDBCTools.getConnection(); Object object = queryRunner.query(con, sql, new ResultSetHandler<Object>(){ @Override public Object handle(ResultSet rs) throws SQLException {//自己實現handle方法 List<Customer> customers = new ArrayList<>(); while(rs.next()){ int id = rs.getInt(1); String name = rs.getString(2); Date date = rs.getDate(3); Customer customer = new Customer(id,name,date); customers.add(customer); } return customers; } }); System.out.println(object);//[Customer [id=1, name=Tom, date=2017-07-15], Customer [id=2, name=Jerry, date=2017-07-15]] } catch (Exception e) { e.printStackTrace(); } finally { JDBCTools.releaseDB(null, null, con); } } /** * 測試ResultSetHandle介面的實現類BeanListHandler */ @Test public void testBeanListHandler(){ Connection con = null; QueryRunner queryRunner = new QueryRunner(); String sql = "SELECT I_D id,name,date FROM customer"; try { con = JDBCTools.getConnection(); Object object = queryRunner.query(con, sql, new BeanListHandler<Customer>(Customer.class)); System.out.println(object);//[Customer [id=1, name=Tom, date=2017-07-15], Customer [id=2, name=Jerry, date=2017-07-15]] } catch (Exception e) { e.printStackTrace(); } finally { JDBCTools.releaseDB(null, null, con); } } /** * 測試ResultSetHandle介面的實現類BeanHandler */ @Test public void testBeanHandler(){ Connection con = null; QueryRunner queryRunner = new QueryRunner(); String sql = "SELECT I_D id,name,date FROM customer"; try { con = JDBCTools.getConnection(); Object object = queryRunner.query(con, sql, new BeanHandler<>(Customer.class)); System.out.println(object);//Customer [id=1, name=Tom, date=2017-07-15] } catch (Exception e) { e.printStackTrace(); } finally { JDBCTools.releaseDB(null, null, con); } } /** * 測試ResultSetHandle介面的實現類MapListHandler */ @Test public void testMapListHandler(){ Connection con = null; QueryRunner queryRunner = new QueryRunner(); String sql = "SELECT I_D id,name,date FROM customer"; try { con = JDBCTools.getConnection(); List<Map<String,Object>> object = queryRunner.query(con, sql, new MapListHandler()); System.out.println(object);//[{id=1, name=Tom, date=2017-07-15}, {id=2, name=Jerry, date=2017-07-15}] } catch (Exception e) { e.printStackTrace(); } finally { JDBCTools.releaseDB(null, null, con); } } /** * 測試ResultSetHandle介面的實現類ScalarHandler */ @Test public void testScalarHandler(){ Connection con = null; QueryRunner queryRunner = new QueryRunner(); String sql = "SELECT I_D id,name FROM customer"; try { con = JDBCTools.getConnection(); Object object = queryRunner.query(con, sql, new ScalarHandler<>(2));//返回查的的結果集中的2列的內容 System.out.println(object);//Tom } catch (Exception e) { e.printStackTrace(); } finally { JDBCTools.releaseDB(null, null, con); } } }
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
/**
* JDBC的工具類,利用資料庫連線池連線資料庫,以及相應的事務操作
* @author wushijia
*
*/
public class JDBCTools {
/**
* 提交事務
* @param con
*/
public static void commit(Connection con){
if(con != null){
try {
con.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 事務的回滾
* @param con
*/
public static void rollback(Connection con){
if(con != null){
try {
con.rollback();
} catch (Exception e) {
e.printStackTrace();
}
}
}
/**
* 開始事務
* @param con
*/
public static void beginTransaction(Connection con){
if(con != null){
try {
con.setAutoCommit(false);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 利用靜態程式碼塊初始化資料庫連線池,資料庫連線池應該只被初始化一次
*/
public static DataSource datasource = null;
static{
Properties properties = new Properties();
InputStream in = JDBCTools.class.getClassLoader().getResourceAsStream("dbcp.properties");
try {
properties.load(in);
datasource = BasicDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 獲取資料庫連線
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException{
return datasource.getConnection();
}
/**
* 釋放連線
* @param con
* @param state
* @param rs
*/
public static void releaseDB(ResultSet rs,Statement state,Connection con){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(state != null){
try {
state.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(con != null){
try {
con.close();//釋放連線只是將連線放回資料庫連線池,供其它需要連線的事務使用
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Customer類
import java.sql.Date;
public class Customer {
public int id;
public String name;
public Date date;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public Customer(int id, String name, Date date) {
super();
this.id = id;
this.name = name;
this.date = date;
}
public Customer() {
super();
}
@Override
public String toString() {
return "Customer [id=" + id + ", name=" + name + ", date=" + date + "]";
}
}
相關推薦
使用DButils對資料庫進行操作
一、DButils commons-dbutils是阿帕奇(Apache)提供的一個開源的JDBC工具類庫,它將JDBC進行了一系列簡單的封裝,使用起來很方便,並且其原始碼極易讀懂,因此,使用dbutils能夠從很大程度上減少JDBC編碼的工作量。我們可以從Ap
SpringMVC——SSM框架對資料庫進行操作的流程以及搭建SSM框架的步驟
SSM框架對資料庫進行操作的流程圖如下: 具體執行流程步驟如下: 1、web伺服器啟動,會自動載入web.xml配置檔案(web.xml配置有:spring.xml的配置檔案、spring的監聽器) 2、瀏覽器傳送一個請求,
(二)連線資料庫使用Model物件對資料庫進行操作(CRUD)
var mongoose = require("mongoose"); mongoose.connect("mongodb://127.0.0.1/mongoose_test",{useMongoClient:true}); mongoose.connection.once("open",functio
(一)Moogose(node.js對資料庫進行操作)
/*(一)連線資料庫 1.下載安裝Mongoose
使用spring-boot整合mybaits對資料庫進行操作例項
新建專案,引入依賴 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent<
JAVA對資料庫進行操作---弱智的學習記錄
通過java對資料庫進行操作的簡單實現 匯入myql-jdbc的jar包 簡單的程式碼實現 package day10_10; import java.sql.Connection; import java.sql.Driv
Android studio中檢視Device File Explorer,並使用sqlit3對資料庫進行操作
首先確保手機與電腦進行連線,手機屬於開發者模式。開啟Android studio找到view,點選view找到“Tool Windows ”,將滑鼠指向“Tool Windows”後找到"Device File Explorer".點選後就可以進行檢視。若想對其中的sqlit
使用sql對資料庫進行操作
使用sql對資料庫進行操作 首先安裝mysql 連線資料庫 開啟cmd視窗,使用命令,連線mysql資料庫 命令:mysql -uroot -p 檢視所有的資料庫 語句:show
【轉載】python如何對資料庫進行操作--操作參考
先花點時間來說說一個程式怎麼和資料庫進行互動 1.和資料庫建立連線 2.執行sql語句,接收返回值 3.關閉資料庫連線 使用MySQLdb也要遵循上面的幾步.讓我們一步步的進行. 1、MySQL資料庫要用MySQLdb模組,但Python用來連結MySQL的第三方庫My
JAVA對資料庫進行操作,實現資料庫中資料的插入,查詢,更改,刪除操作
轉載自:http://www.cnblogs.com/sodawoods-blogs/p/4415858.html (—)通過mysql workbench 建立一個數據庫,在這裡命名為company,然後建一個tb_employee表 (二)以下是java程式碼對錶
使用spring 來對資料庫進行操作
使用Spring對資料庫進行增 刪 改 查 account裡面兩個屬性int aid和double abalance 提供getter和setter方法,程式碼如下 package com.offcn.entity; import java.io.Seria
使用ContentValues對資料庫進行操作
在main.xml中: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
對資料庫進行插入操作
提交.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head&
javaweb:JDBC連線MYSQL資料庫詳解,使用JDBC對資料庫進行CRUD操作以及DAO模式的介紹
JDBC簡介: JDBC全稱為:Java DataBase Connectivity(java資料庫連線)。 SUN公司為了簡化、統一對資料庫的操作,定義了一套Java操作資料庫的規範,稱之為JDBC。 組成JDBC的2個包: 連結:https://pan
java操作Mogodb資料庫,對資料庫進行增刪查改!
首先,我們在windows下安裝mongodb資料庫,安裝教程檢視上一篇文章: 程式碼如下: package io.mogo; import java.util.Map; import org.apache.commons.lang3.StringUtils; im
ASP.NET 使用類對資料庫進行增刪改查操作
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Dat
用JavaScript對MySQL資料庫進行操作的方法
Javascript訪問Access很容易實現,但JS訪問MYSQL卻沒有找到很簡單的方法。今天在瀏覽MYSQL網站時,發現MYSQL有ODBC連線,突然想到JS是可以通過ActiveX訪問ODBC資料庫的,經過測試發現JS連線MYSQL如此簡單!1、下載MYSQL的ODB
Java對MySQL資料庫進行操作【java】
資料庫幾乎是每一個應用型的程式都會用到,學會如何高效操作資料庫也是開發一個重點。今天我總結了具體的操作步驟以及注意點。Java訪問資料庫主要用的方法是JDBC,它是java語言中用來規範客戶端程式如何來訪問資料庫的應用程式介面,提供了諸如查詢和更新資料庫中資料的方法,接下來
MFC中利用ADO對資料庫進行簡單操作的例項
目標:實現對資料庫中的資料進行簡單地操作,包括增、刪、改、查。 第一步,建立一個基於對話方塊的應用程式,命名為TestAdo 第二步,按照圖1的介面佈局新增控制元件 圖1 程式介面示意圖 第三步,程式碼實現 首先,要用#import語句來引用支援ADO的
Java中怎樣實現批量刪除操作(Java對資料庫進行事務處理)?
本人開發的一個安卓版app小遊戲,瘋狂猜明星android版,圖示看起來很搞笑,有點京劇變臉的味道。朋友們小手一抖,下載支援下。謝謝了 本文是記錄Java中實現批量刪除操作(Java對資料庫進行事務處理),在開始之前先來看下面這樣的一個頁面圖: 上面這張圖片顯示的是從