package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class BaseDao {
//属性
public Connection conn;
public PreparedStatement pstmt;
public ResultSet rs;
//获得连接
public Connection getConnection(){
try {
//初始化上下文
Context ctx = new InitialContext();
//获取与逻辑名相同的数据源对象
DataSource ds =
(DataSource)ctx.lookup("java:comp/env/jdbc/MySQLDB");
conn = ds.getConnection();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
return conn;
}
// 增删改
public int executeUpdate(String sql,Object[] parames){
int row = 0;
conn = getConnection();//获得连接
try {
pstmt = conn.prepareStatement(sql);
//填充占位符
for(int i=0;i<parames.length;i++){
pstmt.setObject(i+1, parames[i]);
}
row = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
close();
}
return row;
}
//查询方法
public ResultSet executeSQL(String sql,Object[] params){
//获得连接
conn = getConnection();
try{
pstmt = conn.prepareStatement(sql);
for(int i = 0;i<params.length;i++){
pstmt.setObject((i+1), params[i]);
}
rs = pstmt.executeQuery();
}catch(SQLException e){
e.printStackTrace();
return null;
}
return rs;
}
//断开连接
public void close(){
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}