package dao;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class BaseDao {
private static final String URL;
private static final String DRIVER;
private static final String USERNAME;
private static final String PASSWORD;
// 读取properties
static {
Properties properties = new Properties();
InputStream is = BaseDao.class.getResourceAsStream("/db.properties");
try {
properties.load(is);
} catch (IOException e) {
e.printStackTrace();
}
// 赋值
URL = properties.getProperty("URL");
DRIVER = properties.getProperty("DRIVER");
USERNAME = properties.getProperty("USERNAME");
PASSWORD = properties.getProperty("PASSWORD");
try {
// 释放InputStream
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private Connection conn = null;
private PreparedStatement pstmt = null;
private ResultSet rs = null;
/**
*
* 获取Sql连接
* @return
*/
public Connection getConn() {
Connection conn = null;
try {
Class.forName(DRIVER);
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
/**
* 修改
* @param sql
* @param obj
* @return
*/
public int executeUpdate(String sql,Object[] obj) {
// 获取MySql连接
conn = this.getConn();
int j = 0;
try {
conn.setAutoCommit(false);
pstmt = conn.prepareStatement(sql);
if(obj!=null) {
for (int i = 0; i < obj.length; i++) {
pstmt.setObject(i+1, obj[i]);
}
}
j = pstmt.executeUpdate();
conn.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}finally {
closeAll(conn, pstmt, rs);
}
return j;
}
/**
* 查询
* @param sql
* @param obj
* @return
*/
public ResultSet executeQuery(String sql,Object[] obj) {
conn = this.getConn();
try {
pstmt = conn.prepareStatement(sql);
if(obj!=null) {
for (int i = 0; i < obj.length; i++) {
pstmt.setObject(i+1, obj[i]);
}
}
rs = pstmt.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
/**
* 释放
* @param conn
* @param pstmt
* @param rs
*/
public void closeAll(Connection conn,PreparedStatement pstmt,ResultSet rs) {
try {
if(rs!=null) {
rs.close();
}
if(pstmt!=null) {
pstmt.close();
}
if(rs!=null) {
rs.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}