package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DBUtil {
public Connection connect;
public Connection getConn(){
Connection conn=null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:zf","sa","");
}catch(Exception ex){
ex.printStackTrace();
}finally{
return conn;
}
}
public Connection getPoolConn(){
//Connection connect=null;
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/sqlserver");
//取得数据库连接
connect= ds.getConnection();
} catch (Exception e) {
System.out.println("数据库连接错误"+e);
}
return connect;
}
public int executeSQL(String preparedSql, String[] param) {
//Connection conn = null;
PreparedStatement pstmt = null;
int num = 0;
/* 处理SQL,执行SQL */
try {
connect = this.getPoolConn(); // 得到数据库连接
pstmt = connect.prepareStatement(preparedSql); // 得到PreparedStatement对象
if (param != null) {
for (int i = 0; i < param.length; i++) {
pstmt.setString(i + 1, param[i]); // 为预编译sql设置参数
}
}
num = pstmt.executeUpdate(); // 执行SQL语句
} catch (Exception e) {
e.printStackTrace();
} finally {
closeAll(); // 释放资源
}
return num;
}
public ResultSet executeQ(String preparedSql, String[] param) {
//Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
/* 处理SQL,执行SQL */
try {
connect = this.getPoolConn(); // 得到数据库连接
pstmt = connect.prepareStatement(preparedSql); // 得到PreparedStatement对象
if (param != null) {
for (int i = 0; i < param.length; i++) {
pstmt.setString(i + 1, param[i]); // 为预编译sql设置参数
}
}
// 执行SQL语句
rs=pstmt.executeQuery();
System.out.println("执行完毕");
} catch (Exception e) {
e.printStackTrace();
}
return rs;
}
public void closeAll() {
/* 如果conn不空,关闭conn */
if (connect != null) {
try {
connect.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}