jdbc結(jié)合dpcp連接池的封裝實(shí)例
demo需求:
實(shí)現(xiàn)jdbc結(jié)合dpcp連接池的封裝(以oracle數(shù)據(jù)庫(kù)為例)并實(shí)現(xiàn)簡(jiǎn)單地查找demo主要技術(shù):
(1)Properties類加載.properties的方式 (2)dpcp連接池建立數(shù)據(jù)庫(kù)連接的方式 (3)查詢數(shù)據(jù)的方式 (4)靜態(tài)代碼塊的使用,分離驅(qū)動(dòng)的加載和連接信息的載入,整個(gè)服務(wù)器生命周期只執(zhí)行一次
demo所用jar包:
classes12.jar commons-dbcp-1.4.jar commons-pool-1.5.4.jar
demo主要代碼展示:
Utils.java
private static Connection conn = null;
private static BasicDataSource dataSource = new BasicDataSource();
private static Properties prop = getProperties("src/db.properties");
// 將連接池的創(chuàng)建放在靜態(tài)代碼塊,保證整個(gè)服務(wù)器生命周期只執(zhí)行一次,減少服務(wù)器負(fù)擔(dān)
static {
try {
dataSource.setDriverClassName(prop.getProperty("driver"));
dataSource.setUrl(prop.getProperty("url"));
dataSource.setUsername(prop.getProperty("user"));
dataSource.setPassword(prop.getProperty("password"));
dataSource.setMaxActive(20);
dataSource.setInitialSize(10);
} catch (Exception e) {
System.out.println("連接池創(chuàng)建失敗");
}
}
/**
* show 方法簡(jiǎn)介 獲取數(shù)據(jù)庫(kù)連接池的連接,因?yàn)橐呀?jīng)封裝,以后只需要配置db.properties,無(wú)需動(dòng)這邊代碼
*
* @author 葉灬黎
* @return
*/
public static Connection getConnection() {
try {
conn = dataSource.getConnection();
} catch (Exception e) {
System.out.println("數(shù)據(jù)庫(kù)連接失敗");
}
return conn;
}
/**
* show 方法簡(jiǎn)介 讀取.properties文件,這里主要服務(wù)于想將jdbc連接數(shù)據(jù)庫(kù)的各項(xiàng)參數(shù)抽取出來(lái)
*
* @author 葉灬黎
* @param file
* 要讀取的.properties文件的路徑
* @return Properties類對(duì)象
*/
private static Properties getProperties(String file) {
Properties properties = new Properties();
try {
FileInputStream fis = new FileInputStream(new File(file));
properties.load(fis);
fis.close();
} catch (IOException e) {
System.out.println("加載配置文件出錯(cuò)");
}
return properties;
}
OneSelect.java
public static void main(String[] args) {
List<String> names = new ArrayList<>();
try {
Connection conn = Utils.getConnection();
//創(chuàng)建執(zhí)行引擎
Statement state = conn.createStatement();
//執(zhí)行sql
String sql = "select * from emp";
ResultSet rs = state.executeQuery(sql);
while(rs.next()){
names.add(rs.getString("ename"));
}
rs.close();
state.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(String s : names){
System.out.println(s);
}
}
db.properties(src目錄下) driver = oracle.jdbc.driver.OracleDriver url = jdbc:oracle:thin:@127.0.0.1:1521:orcl user = scott password = 123456
demo資源位置:
svn://106.15.229.200/Javaweb/tinyDemo_jdbc 用戶temp/密碼temp)
以上這篇jdbc結(jié)合dpcp連接池的封裝實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java單例模式實(shí)現(xiàn)靜態(tài)內(nèi)部類方法示例
這篇文章主要介紹了Java單例模式實(shí)現(xiàn)靜態(tài)內(nèi)部類方法示例,涉及構(gòu)造函數(shù)私有化等相關(guān)內(nèi)容,需要的朋友可以了解下。2017-09-09
Java8中LocalDateTime與時(shí)間戳timestamp的互相轉(zhuǎn)換
這篇文章主要給大家介紹了關(guān)于Java8中LocalDateTime與時(shí)間戳timestamp的互相轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
使用SpringBoot簡(jiǎn)單實(shí)現(xiàn)一個(gè)蘋果支付的場(chǎng)景
這篇文章主要為大家詳細(xì)介紹了如何在Spring?Boot項(xiàng)目中集成Apple?Pay功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
淺談Mybatis+mysql 存儲(chǔ)Date類型的坑
這篇文章主要介紹了淺談Mybatis+mysql 存儲(chǔ)Date類型的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
Java文件選擇對(duì)話框JFileChooser使用詳解
這篇文章主要介紹了Java文件選擇對(duì)話框JFileChooser使用詳解的相關(guān)資料,需要的朋友可以參考下2015-07-07
詳解使用spring cloud config來(lái)統(tǒng)一管理配置文件
這篇文章主要介紹了詳解使用spring cloud config來(lái)統(tǒng)一管理配置文件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
SpringBoot實(shí)現(xiàn)分布式任務(wù)調(diào)度的詳細(xì)步驟
隨著互聯(lián)網(wǎng)應(yīng)用的規(guī)模和復(fù)雜度不斷增加,單節(jié)點(diǎn)任務(wù)調(diào)度系統(tǒng)已經(jīng)難以滿足高并發(fā)、大數(shù)據(jù)量的處理需求,分布式任務(wù)調(diào)度成為了解決這一問(wèn)題的重要手段,本文將介紹如何在Spring Boot中實(shí)現(xiàn)分布式任務(wù)調(diào)度,需要的朋友可以參考下2024-08-08
spring5 SAXParseException:cvc-elt.1: 找不到元素“beans 的聲明詳解
這篇文章主要給大家介紹了關(guān)于spring5 SAXParseException:cvc-elt.1: 找不到元素“beans 聲明的相關(guān)資料,需要的朋友可以參考下2020-08-08
Spring Boot攔截器Interceptor與過(guò)濾器Filter詳細(xì)教程(示例詳解)
本文詳細(xì)介紹了SpringBoot中的攔截器(Interceptor)和過(guò)濾器(Filter),包括它們的定義、作用范圍、使用場(chǎng)景、實(shí)現(xiàn)步驟、執(zhí)行順序、常見(jiàn)問(wèn)題及解決方案,感興趣的朋友跟隨小編一起看看吧2025-03-03

