java連接orcale數(shù)據(jù)庫(kù)示例分享
database.properties
jdbc.driver_class=oracle.jdbc.driver.OracleDriver
jdbc.connection.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.connection.username=scott
jdbc.connection.password=tiger
ConfigManager.java
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
//讀取配置文件(屬性文件)的工具類
public class ConfigManager {
private static ConfigManager configManager;
// properties.load(inputStream);讀取屬性文件
private static Properties properties;
// 在構(gòu)造工具類時(shí),進(jìn)行配置文件的讀取
private ConfigManager() {
String configFile = "database.properties";
properties = new Properties();
InputStream is = ConfigManager.class.getClassLoader()
.getResourceAsStream(configFile);
try {
// 讀取配置文件
properties.load(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 通過(guò)單例模式設(shè)置實(shí)例化個(gè)數(shù)
public static ConfigManager getInstance() {
if (configManager == null) {
configManager = new ConfigManager();
}
return configManager;
}
// 通過(guò)key獲取對(duì)應(yīng)的value
public String getString(String key) {
return properties.getProperty(key);
}
}
BaseDao.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.book.util.ConfigManager;
//基類:數(shù)據(jù)庫(kù)操作通用類
public class BaseDao {
protected Connection conn;
protected PreparedStatement ps;
protected Statement stmt;
protected ResultSet rs;
// 獲取數(shù)據(jù)庫(kù)連接
public boolean getConnection() {
// // 讀取配置信息
String driver = ConfigManager.getInstance().getString(
"jdbc.driver_class");
String url = ConfigManager.getInstance().getString(
"jdbc.connection.url");
String username = ConfigManager.getInstance().getString(
"jdbc.connection.username");
String password = ConfigManager.getInstance().getString(
"jdbc.connection.password");
// 加載JDBC驅(qū)動(dòng)
try {
Class.forName(driver);
// 與數(shù)據(jù)庫(kù)建立連接
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
return false;
} catch (SQLException e) {
return false;
}
return true;
}
// 增刪改的通用方法
public int executeUpdate(String sql, Object[] params) {
int updateRows = 0;
getConnection();
try {
ps = conn.prepareStatement(sql);
// 填充占位符
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);
System.out.println(i + 1 + "---" + params[i]);
}
System.out.println(sql);
updateRows = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return updateRows;
}
// 查詢
public ResultSet executeSQL(String sql, Object[] params) {
getConnection();
try {
ps = conn.prepareStatement(sql);
// 填充占位符
for (int i = 0; i < params.length; i++) {
ps.setObject(i + 1, params[i]);
}
rs = ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
// 關(guān)閉資源
public void closeAll(){
try {
if(rs!=null){
rs.close();
}
if(stmt!=null){
stmt.close();
}
if(ps!=null){
ps.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
- Java使用JDBC連接數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
- Java實(shí)現(xiàn)JSP在Servelt中連接Oracle數(shù)據(jù)庫(kù)的方法
- java常用工具類之?dāng)?shù)據(jù)庫(kù)連接類(可以連接多種數(shù)據(jù)庫(kù))
- java連接數(shù)據(jù)庫(kù)增、刪、改、查工具類
- java連接mysql數(shù)據(jù)庫(kù)學(xué)習(xí)示例
- java使用jdbc連接數(shù)據(jù)庫(kù)工具類和jdbc連接mysql數(shù)據(jù)示例
- java連接MySQl數(shù)據(jù)庫(kù)實(shí)例代碼
- Java Web項(xiàng)目中連接Access數(shù)據(jù)庫(kù)的配置方法
- Java連接各種數(shù)據(jù)庫(kù)的方法
相關(guān)文章
spring-cloud入門(mén)之spring-cloud-config(配置中心)
這篇文章主要介紹了spring-cloud入門(mén)之spring-cloud-config(配置中心),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
java調(diào)用遠(yuǎn)程服務(wù)器的shell腳本以及停止的方法實(shí)現(xiàn)
這篇文章主要介紹了java調(diào)遠(yuǎn)程服務(wù)器的shell腳本以及停止的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Ribbon負(fù)載均衡服務(wù)調(diào)用的示例詳解
Rbbo其實(shí)就是一個(gè)軟負(fù)載均衡的客戶端組件,他可以和其他所需請(qǐng)求的客戶端結(jié)合使用,這篇文章主要介紹了Ribbon負(fù)載均衡服務(wù)調(diào)用案例代碼,需要的朋友可以參考下2023-01-01
Java利用MessageFormat實(shí)現(xiàn)短信模板的匹配
這篇文章主要介紹了Java利用MessageFormat實(shí)現(xiàn)短信模板的匹配,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Java實(shí)現(xiàn)Flappy Bird游戲源碼
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)Flappy Bird游戲源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
Java在web頁(yè)面上的編碼解碼處理及中文URL亂碼解決
這篇文章主要介紹了Java在web頁(yè)面上的編碼解碼處理及中文URL亂碼解決,文中所介紹的兩種使用過(guò)濾器解決中文鏈接亂碼的方法非常有效,需要的朋友可以參考下2016-02-02
java String類常量池分析及"equals"和"==”區(qū)別詳細(xì)介紹
這篇文章主要介紹了java String類常量池分析及"equals"和"==”區(qū)別詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-12-12
基于HTML5+js+Java實(shí)現(xiàn)單文件文件上傳到服務(wù)器功能
應(yīng)公司要求,在HTML5頁(yè)面上實(shí)現(xiàn)上傳文件到服務(wù)器功能,對(duì)于我這樣的菜鳥(niǎo),真是把我難住了,最后還是請(qǐng)教大神搞定的,下面小編把例子分享到腳本之家平臺(tái),供大家參考2017-08-08
Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之KMP算法
在很多地方也都經(jīng)常看到講解KMP算法的文章,看久了好像也知道是怎么一回事,但總感覺(jué)有些地方自己還是沒(méi)有完全懂明白。這兩天花了點(diǎn)時(shí)間總結(jié)一下,有點(diǎn)小體會(huì),我希望可以通過(guò)我自己的語(yǔ)言來(lái)把這個(gè)算法的一些細(xì)節(jié)梳理清楚,也算是考驗(yàn)一下自己有真正理解這個(gè)算法2022-02-02

