JNDI连接数据库(连接池)
public class DBConnection {
public PreparedStatement pstmt = null;
public Statement stmt = null;
public Connection con = null;
public ResultSet rs = null;
public Result r = null;
// JNDI获取数据源
public Connection getConnection() {
try {
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/books");
con = ds.getConnection();
} catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
// 通用查询方法
public Result executeQuery(Connection con, String sql, Object[] params)
throws SQLException {
pstmt = con.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
rs = pstmt.executeQuery();
r = ResultSupport.toResult(rs);
return r;
}
// 通用增删改方法
public int executeUpdate(Connection con, String sql, Object[] params)
throws SQLException {
pstmt = con.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
int num = pstmt.executeUpdate();
return num;
}
// 关闭数据资源
public void closeAll() {
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}