1,jdbc.properties文件
driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:BDQN
username=wjb
password=wjb
2柠偶,讀取properties文件
package cn.util;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class ConfigManager {
//讀取jdbc.properties配置文件,單例模式
private static ConfigManager configManager;
private static Properties properties;
//單例模式必須用private構造方法,不能用public
private ConfigManager(){
String configFile = "jdbc.properties";
properties = new Properties();
InputStream is = ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
try {
properties.load(is);
} catch (IOException e) {
e.printStackTrace();
}
}
//提供一個入口獲取ConfigManager,這個方法可以嚴格控制實例生成的個數(shù)
public static ConfigManager getInstance(){
//如果為空就創(chuàng)建一個自已的構造方法睬关,獲取ConfigManager
if(configManager == null){
configManager = new ConfigManager();
}
return configManager;
}
//以上只是獲取了properties的KEY值诱担,下面這個方法獲取對應的value值
public String getString (String key){
return properties.getProperty(key);
}
}
3,連接數(shù)據(jù)庫的基類
package cn.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import cn.pojo.Dancer;
import cn.util.ConfigManager;
public class BaseDao {
Connection connection = null;
ResultSet rs = null;
PreparedStatement pst = null;
//連接數(shù)據(jù)庫的方法
public boolean getConnection(){
String driver = ConfigManager.getInstance().getString("driverClassName");
String url = ConfigManager.getInstance().getString("url");
String username = ConfigManager.getInstance().getString("username");
String password = ConfigManager.getInstance().getString("password");
try {
Class.forName(driver);
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return true;
}
//增刪改
public int executeUpdate(String sql,Object[] param){
int row = 0;
if(this.getConnection()){
try {
pst = connection.prepareStatement(sql);
for(int i = 0;i<param.length;i++){
pst.setObject(i+1, param[i]);
}
row = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
return row;
}
//查詢
public ResultSet executeQuery(String sql,Object[] param){
if(this.getConnection()){
try {
pst = connection.prepareStatement(sql);
for(int i=0;i<param.length;i++){
pst.setObject(i+1, param[i]);
}
rs = pst.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
}
return rs;
}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者