黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 源碼分析JDBC工具類的構(gòu)建

源碼分析JDBC工具類的構(gòu)建

更新時間:2021-02-20 17:11:26 來源:動力節(jié)點 瀏覽1262次

JDBC是Java語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的應(yīng)用程序接口,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法。除此之外,JDBC中還有許多工具類用來實現(xiàn)各種功能,本文我們從源碼出發(fā),來分析一下JDBC工具類的構(gòu)建。

1. 資源釋放工作的整合

/**

?* 釋放資源

?* @param conn

?* @param st

?* @param rs

?*/

public static void release(Connection conn , Statement st , ResultSet rs){

closeRs(rs);

closeSt(st);

closeConn(conn);

}



private static void closeRs(ResultSet rs){

try {

if(rs != null){

rs.close();

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

rs = null;

}

}



private static void closeSt(Statement st){

try {

if(st != null){

st.close();

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

st = null;

}

}



private static void closeConn(Connection conn){

try {

if(conn != null){

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

conn = null;

}

}

2. 驅(qū)動防二次注冊

/**

?* 獲取連接對象

?* @return

?*/

public static Connection getConn(){

Connection conn = null;

try {

Class.forName(driverClass);

//靜態(tài)代碼塊 ---> 類加載了,就執(zhí)行。 java.sql.DriverManager.registerDriver(new Driver());

//DriverManager.registerDriver(new com.mysql.jdbc.Driver());

//DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");

//2. 建立連接 參數(shù)一: 協(xié)議 + 訪問的數(shù)據(jù)庫 , 參數(shù)二: 用戶名 , 參數(shù)三: 密碼。

conn = DriverManager.getConnection(url, name, password);

} catch (Exception e) {

e.printStackTrace();

}

return conn;

}

3. 使用properties配置文件

在src底下聲明一個文件 xxx.properties ,里面的內(nèi)容吐下:

????? driverClass=com.mysql.jdbc.Driver

?????? url=jdbc:mysql://localhost/student

?????? name=root

?????? password=root

在工具類里面,使用靜態(tài)代碼塊,讀取屬性

static{

try {

//1. 創(chuàng)建一個屬性配置對象

Properties properties = new Properties();

InputStream is = new FileInputStream("jdbc.properties"); //對應(yīng)文件位于工程根目錄

?

//使用類加載器,去讀取src底下的資源文件。 后面在servlet ?//對應(yīng)文件位于src目錄底下

//InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");

//導入輸入流。

properties.load(is);



//讀取屬性

driverClass = properties.getProperty("driverClass");

url = properties.getProperty("url");

name = properties.getProperty("name");

password = properties.getProperty("password");



} catch (Exception e) {

e.printStackTrace();

}

}

源代碼如下:

public class JDBCUtil {



static String driverClass = null;

static String url = null;

static String name = null;

static String password= null;



static{

try {

//1. 創(chuàng)建一個屬性配置對象

Properties properties = new Properties();

InputStream is = new FileInputStream("jdbc.properties");



//使用類加載器,去讀取src底下的資源文件。 后面在servlet

// InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");

//導入輸入流。

properties.load(is);



//讀取屬性

driverClass = properties.getProperty("driverClass");

url = properties.getProperty("url");

name = properties.getProperty("name");

password = properties.getProperty("password");



} catch (Exception e) {

e.printStackTrace();

}

}



/**

?* 獲取連接對象

?* @return

?*/

public static Connection getConn(){

Connection conn = null;

try {

Class.forName(driverClass);

//靜態(tài)代碼塊 ---> 類加載了,就執(zhí)行。 java.sql.DriverManager.registerDriver(new Driver());

//DriverManager.registerDriver(new com.mysql.jdbc.Driver());

//DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");

//2. 建立連接 參數(shù)一: 協(xié)議 + 訪問的數(shù)據(jù)庫 , 參數(shù)二: 用戶名 , 參數(shù)三: 密碼。

conn = DriverManager.getConnection(url, name, password);

} catch (Exception e) {

e.printStackTrace();

}

return conn;

}



/**

?* 釋放資源

?* @param conn

?* @param st

?* @param rs

?*/

public static void release(Connection conn , Statement st , ResultSet rs){

closeRs(rs);

closeSt(st);

closeConn(conn);

}



private static void closeRs(ResultSet rs){

try {

if(rs != null){

rs.close();

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

rs = null;

}

}



private static void closeSt(Statement st){

try {

if(st != null){

st.close();

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

st = null;

}

}



private static void closeConn(Connection conn){

try {

if(conn != null){

conn.close();

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

conn = null;

}

}

}

我們通過詳細的代碼不難看出JDBC工具類的構(gòu)建主要還是對各種文件的配置,在本站的JDBC教程中對JDBC連接數(shù)據(jù)庫涉及到的各個案例都有很深入的講解,想要學好JDBC的小伙伴就需要深入解析這些代碼,真正弄懂了也就代表我們學會了。

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 手机在线一区二区三区 | 亚洲精品午夜在线观看 | 免费在线观看黄色小视频 | 手机看片1204国内基地在线 | 中国一级毛片免费观看 | 欧美日韩视频在线第一区 | 91成人精品视频 | 国产不卡一区 | 亚洲欧美在线中文字幕不卡 | 永久在线毛片免费观看 | 欧美日韩国产网站 | 三级黄网 | 国产一区二卡三区四区 | 中文字幕亚洲综久久2021 | 中文字幕日本在线视频二区 | 在线播放你懂的 | 网站在线观看你懂的 | 91免费精品国偷自产在线在线 | 一级毛片在线不卡直接观看 | 成人黄网18免费观看的网站 | 九九夜夜操妹子 | 黄色毛片免费 | 亚洲综合一区二区三区四区 | 中文字幕一区中文亚洲 | 曰本三级香港三级三级人 | 免费一级a毛片在线搐放正片 | 一区二区三区欧美在线 | 午夜免费片| 免费一级欧美片在线观免看 | 成年人网站免费在线观看 | 午夜欧美精品久久久久久久久 | 最新的国产成人精品2022 | 高h猛烈做哭bl壮汉受欧美 | 一级黄色免费观看 | 在线簧片 | 亚洲一区中文字幕 | 性无遮挡高清视频免费 | 欧美专区日韩 | 中文字幕在线看视频一区二区三区 | 中国一级毛片免费看视频 | 特级xxxxx欧美 |