package dao.common;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
/**
*
* 通用的JDBC数据库访问类
*
*/
@SuppressWarnings({"unchecked"})
public class SQLCommandBean {
private Connection conn;
private String sqlValue;
private List values;
/**
* 设定连接类
*/
public void setConnection(Connection conn) {
this.conn = conn;
}
/**
* 设定SQL语句
*/
public void setSqlValue(String sqlValue) {
this.sqlValue = sqlValue;
}
/**
* 设定SQL语句的参数
*/
public void setValues(List values) {
this.values = values;
}
/**
* 设定语句的参数
*
* @param PreparedStatement对象
* @param values参数列表
* @exception SQLException
*/
private void setValues(PreparedStatement pstmt, List values)
throws SQLException {
for (int i = 0; i < values.size(); i++) {
Object v = values.get(i);
pstmt.setObject(i + 1, v);
}
}
/**
* 执行查询
*
* @return Result对象
* @exception SQLException
*/
public Result executeQuery(){
Result result = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
Statement stmt = null;
try {
if (values != null && values.size() > 0) {
pstmt = conn.prepareStatement(sqlValue);
setValues(pstmt, values);
rs = pstmt.executeQuery();
} else {
stmt = conn.createStatement();
rs = stmt.executeQuery(sqlValue);
}
result = ResultSupport.toResult(rs);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
}
}
}
return result;
}
/**
* 执行Update语句
*
* @return 执行影响的行数
* @exception SQLException
*/
public int executeUpdate() {
int noOfRows = 0;
ResultSet rs = null;
PreparedStatement pstmt = null;
Statement stmt = null;
try {
if (values != null && values.size() > 0) {
pstmt = conn.prepareStatement(sqlValue);
setValues(pstmt, values);
noOfRows = pstmt.executeUpdate();
} else {
stmt = conn.createStatement();
noOfRows = stmt.executeUpdate(sqlValue);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
}
}
}
return noOfRows;
}
}
fanzexi
- 粉丝: 1
- 资源: 4
最新资源
- 车用驱动电机原理与控制基础-P140公式(6-57)~(6-58)
- MATLAB编程入门指南:环境搭建、基础语法及实用功能
- Oracle SQL Developer Data Modeler:数据建模与模型文档化及分享的最佳实践
- 使用 Python 为新年创建倒数计时器
- python语言huochepiao爬虫程序代码QZQ1.txt
- 2025 年新年快乐 -使用 HTML、CSS 和 JavaScript 设计新年贺卡
- Java毕设项目:基于spring+mybatis+maven+mysql实现的小区停车管理系统【含源码+数据库+毕业论文】
- Java毕设项目:基于spring+mybatis+maven+mysql实现的校园车辆管理系统【含源码+数据库+开题报告+毕业论文】
- 如何使用 Python 创建倒数计时器?
- Java毕设项目:基于spring+mybatis+maven+mysql实现的学生公寓管理系统【含源码+数据库+答辩PPT+毕业论文】
- 电子产品IM端子自动组装机sw14全套技术资料100%好用.zip
- Java毕设项目:基于spring+mybatis+maven+mysql实现的电动车租赁管理系统【含源码+数据库+毕业论文】
- 基于java的酒店客房管理系统的开题报告.docx
- 基于java的酒店预约及管理系统的开题报告.docx
- 电芯铝塑膜冲坑机sw14全套技术资料100%好用.zip
- 基于java的旅游攻略网站的开题报告.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈