package dao;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class BaseDao {
private static String driver;
private static String url;
private static String user;
private static String pwd;
protected Connection conn;
private static void init(){
Properties properties=new Properties();
InputStream is=BaseDao.class.getClassLoader().getResourceAsStream("basedao.properties");
try {
properties.load(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver=properties.getProperty("driver");
url=properties.getProperty("url");
user=properties.getProperty("user");
pwd=properties.getProperty("pwd");
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static{
init();
}
protected Connection getConnection(){
try {
if (conn==null||conn.isClosed()) {
conn=DriverManager.getConnection(url,user,pwd);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
protected void closeAll(Connection conn,PreparedStatement ps,ResultSet rs) {
if (rs!=null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (ps!=null) {
try {
ps.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn!=null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
protected int executeUpdate(String sql,Object... param) {
int result=0;
conn=getConnection();
PreparedStatement ps=null;
try {
ps=conn.prepareStatement(sql);
for (int i = 0; i < param.length; i++) {
ps.setObject(i+1, param[i]);
}
result=ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
closeAll(conn, ps, null);
}
return result;
}
protected ResultSet executeQuery(String sql,Object... param) {
ResultSet rs=null;
conn=getConnection();
PreparedStatement ps=null;
try {
ps=conn.prepareStatement(sql);
for (int i = 0; i < param.length; i++) {
ps.setObject(i+1, param[i]);
}
rs=ps.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
}
转载于:https://www.cnblogs.com/drl-blogs/p/10797981.html