package y2jsp.students.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
import javax.sql.DataSource;
public class BaseDao {
protected Connection conn;
protected PreparedStatement ps;
protected ResultSet rs;
/**
* 加载驱动建立数据库的连接
* @return 这个连接Connection
*/
/* public static synchronized Connection getConnection(){
String driverClassName=ReadProperties.getIntance().getProperty("driver");
String url=ReadProperties.getIntance().getProperty("url");
String user=ReadProperties.getIntance().getProperty("user");
String pass=ReadProperties.getIntance().getProperty("pass");
Connection conn=null;
try{
Class.forName(driverClassName);
conn=DriverManager.getConnection(url,user,pass);
return conn;
}catch(Exception ex){
ex.printStackTrace();
}
return null;
}*/
public Connection getConn(String jndiName){
try{
Context context=new InitialContext();
DataSource ds=(DataSource)context.lookup("java:comp/env/"+jndiName);
return ds.getConnection();
}catch(Exception ex){
ex.printStackTrace();
return null;
}
}
/**
* 关闭连接释放资源
* @param conn
* @param ps
* @param rs
*/
public void closeAll(Connection conn,PreparedStatement ps,ResultSet rs){
try{
if(rs!=null){
rs.close();
rs=null;
}
if(ps!=null){
ps.close();
ps=null;
}
if(conn!=null){
conn.close();
conn=null;
}
}catch(Exception ex){
ex.printStackTrace();
}
}
/**
* 数据的增删改操作
* @param sql
* @param values
* @return
*/
public int doExecuteSQL(String sql,List values){
try{
conn=this.getConn("jdbc/common");
ps=conn.prepareStatement(sql);
this.setValues(ps, values);
int s=ps.executeUpdate();
return s;
}catch (Exception ex){
ex.printStackTrace();
return 0;
}finally{
this.closeAll(conn, ps, null);
}
}
public Result getAllDataInfo(String sql,List values){
try{
conn=this.getConn("jdbc/common");
ps=conn.prepareStatement(sql);
this.setValues(ps, values);
rs=ps.executeQuery();
return ResultSupport.toResult(rs);
}catch(Exception ex){
ex.printStackTrace();
return null;
}finally{
this.closeAll(conn, ps, rs);
}
}
/**
* 遍历传递过来的参数值
* @param ps
* @param values
*/
public void setValues(PreparedStatement ps,List values){
if(values!=null){
for(int i=0;i<values.size();i++){
try{
ps.setObject(i+1,i);
}catch (Exception ex){
ex.printStackTrace();
}
}
}
}
}
workinbj
- 粉丝: 12
- 资源: 4
最新资源
- (176413212)源代码 ,电动跷跷板-大学生电子设计大赛.rar
- 手语图像分类数据集【已标注,约2,500张数据】
- (68688640)python获取股票信息
- (175881858)基于KNN算法的MATLAB人脸识别-课程设计.zip
- (178021462)基于Javaweb+ssm的医院在线挂号系统的设计与实现.zip
- (179941434)基于MATLAB车牌识别系统【含界面GUI】.zip
- (179941432)基于MATLAB车牌识别系统【GUI含界面】.zip
- (179010422)基于ensp搭建的校园网
- (177588850)基于java+mysql+swing的学生选课成绩信息系统
- (175549404)基于微信小程序的十二神鹿点餐(外卖小程序)(毕业设计,包括数据库,源码,教程).zip
- (42233200)Proteus单片机仿真实例大全(29个案例).zip
- (175053052)计算机网络课程设计,实验报告和源码,校园网
- (178977624)Python数据分析与挖掘源码.zip
- (179979052)基于MATLAB车牌识别系统【带界面GUI】.zip
- (481250)Proteus 与单片机 仿真
- NVR-K51-CN-V3.4.112-200604
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈