import java.util.*;
import java.sql.*;
import javax.servlet.jsp.jstl.sql.*;
public class SQLCommandBean {
private Connection conn;
private String sqlValue;
private List values;
//设定连接类
public void setConn(Connection conn) {
this.conn = conn;
}
//设定sql语句
public void setSqlValue(String sqlValue) {
this.sqlValue = sqlValue;
}
//设定sql语句的参数
public void setValues(List values) {
this.values = values;
}
//执行查询
public Result executeQuery() throws SQLException{
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);
}
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语句
public int executeUpdate() throws SQLException{
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);
}
}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;
}
//设定语句参数
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);
}
}
}
分享到:
相关推荐
在这个场景中,"SSH中通用DAO类"指的是在SSH框架下设计和实现的可以应用于多种业务场景的数据访问对象(Data Access Object)类。 DAO层是三层架构或MVC架构中的一个重要部分,主要负责与数据库进行交互,将业务...
在给定的“generalDAO”压缩包中,可能包含了一个或多个通用 DAO 类的实现,这些类可能是针对不同数据库操作(如增删改查)的封装。这些类可能使用了参数化 SQL 语句或者预编译的 SQL 语句(如 Java 中的 ...
通过这种方式,我们可以创建一个通用的DAO类,不指定具体的实体类,但在子类中指定时,编译器会进行类型检查,避免了类型转换的麻烦。 接着,我们讨论“反射”。反射是Java提供的一个强大的工具,允许程序在运行时...
在泛型通用DAO中,我们可以定义一个泛型接口或抽象类,比如`GenericDao<T>`,其中`T`代表我们要操作的数据实体类型。这样,我们只需要为每种数据实体创建一个具体的DAO实现类,而无需为每个基本操作重复编写模板代码...
有了这些实体类,我们可以进一步构建通用Dao层。这里的关键是动态生成SQL语句和执行数据库操作。C#的`Expression` API可以帮助我们根据属性生成相应的CRUD(创建、读取、更新、删除)操作。例如,生成一个获取所有...
2. 创建一个`HibernateDAO`类,作为所有实体的通用DAO实现,包含与数据库交互的通用逻辑。 ```java public class HibernateDAO<T> { private SessionFactory sessionFactory; public HibernateDAO...
通用DAO通常包含对增删改查(CRUD)操作的抽象方法,如save()、delete()、update()和getById()等,可以适用于多个不同的数据实体类。而Service层则在此基础上进行业务逻辑处理,调用DAO方法来执行数据库操作,并可能...
- 针对特殊需求,可以在通用DAO的基础上,为特定实体类创建特定的DAO,添加特定的方法。 - 结合MyBatis或其他ORM工具,实现混合使用,根据场景选择最合适的访问方式。 综上所述,Hibernate通用DAO设计的核心在于...
自定义通用DAO实现基本的CRUD,比如: public interface BaseDao<T> { int insert(T obj) throws Exception; int update(T obj) throws Exception; int deleteByPrimaryKey(Object key) throws Exception; int ...
本资源“Hibernate_通用DAO模式”提供了一种适用于不同类型表单的DAO实现,基于SSH(Struts2、Spring、Hibernate)框架,特别强调简洁、易懂和高可移植性。 首先,SSH框架是Java Web开发中的经典组合,Struts2负责...
**Hibernate原生通用DAO**是基于Hibernate框架设计的一种简化数据访问操作的方式,它模仿了Spring框架中的`HibernateTemplate`类,旨在提供一个简单易用的DAO(Data Access Object)层,方便开发人员进行数据库操作...
SSM(Spring-SpringMVC-Mybatis)通用Dao框架是一个常见的Java Web开发架构,它整合了Spring、SpringMVC和Mybatis三个强大的开源框架,为开发者提供了便捷的数据访问和业务逻辑处理能力。这个框架的使用可以显著提高...
**标题:“Hibernate的通用DAO”** 在Java编程领域,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者以面向对象的方式处理数据库操作,从而减少了对SQL的直接依赖。通用DAO(Data Access Object)是一...
通过这种方式,通用DAO可以处理任何符合特定规范(如拥有主键、属性名与数据库字段对应等)的实体类,大大减少了重复的代码。 在提供的"通用DAO源码及示例"中,我们可以看到具体的实现细节,如如何初始化数据库连接...
通用dao,简单全面,所有dao都可以继承这个dao.
通过定义一个泛型接口,我们可以创建一个通用的数据访问对象(DAO),这个DAO可以处理任何类型的实体类,只要它们遵循一定的规则,比如拥有ID字段。这样,我们就只需要编写一次DAO的实现,就可以为不同的数据表提供...
在这个"JDBCTemplate+JavaPOJO实现通用DAO"的项目中,我们将探讨如何利用这两者构建一个通用的DAO层。 首先,Java POJO(Plain Old Java Object)是指那些没有特殊约束的简单Java对象,通常用于表示数据库中的实体...
通用DAO的概念就是基于MyBatis,创建一个可复用的DAO接口和实现类,来处理基本的CRUD(Create、Read、Update、Delete)操作。 首先,我们来看一下通用DAO的简单实现。通常,我们会定义一个基类,如`BaseMapper<T>`...
Java源代码 一个简单的通用DAO实现 (基于hibernate)面向应用层按POJO类缓存hibernate的session对象.使用举例: DAO dao = DAOFactory.getDAO(POJO.class);//获得一个全局类单例的DAO实例 dao.save(pojo); 你也可以...
spring集成hibernate通用dao,泛型,server都可以调用