`

通用的DAO类

阅读更多
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中通用DAO类"指的是在SSH框架下设计和实现的可以应用于多种业务场景的数据访问对象(Data Access Object)类。 DAO层是三层架构或MVC架构中的一个重要部分,主要负责与数据库进行交互,将业务...

    通用数据库访问模块,通用DAO类

    在给定的“generalDAO”压缩包中,可能包含了一个或多个通用 DAO 类的实现,这些类可能是针对不同数据库操作(如增删改查)的封装。这些类可能使用了参数化 SQL 语句或者预编译的 SQL 语句(如 Java 中的 ...

    java 基于泛型与反射的通用 DAO

    通过这种方式,我们可以创建一个通用的DAO类,不指定具体的实体类,但在子类中指定时,编译器会进行类型检查,避免了类型转换的麻烦。 接着,我们讨论“反射”。反射是Java提供的一个强大的工具,允许程序在运行时...

    泛型通用DAO,可以很简化DAO层的代码

    在泛型通用DAO中,我们可以定义一个泛型接口或抽象类,比如`GenericDao&lt;T&gt;`,其中`T`代表我们要操作的数据实体类型。这样,我们只需要为每种数据实体创建一个具体的DAO实现类,而无需为每个基本操作重复编写模板代码...

    C#特性标签实现通用Dao层

    有了这些实体类,我们可以进一步构建通用Dao层。这里的关键是动态生成SQL语句和执行数据库操作。C#的`Expression` API可以帮助我们根据属性生成相应的CRUD(创建、读取、更新、删除)操作。例如,生成一个获取所有...

    java ssh通用DAO另类实现示例

    2. 创建一个`HibernateDAO`类,作为所有实体的通用DAO实现,包含与数据库交互的通用逻辑。 ```java public class HibernateDAO&lt;T&gt; { private SessionFactory sessionFactory; public HibernateDAO...

    hibernate4 通用dao,service

    通用DAO通常包含对增删改查(CRUD)操作的抽象方法,如save()、delete()、update()和getById()等,可以适用于多个不同的数据实体类。而Service层则在此基础上进行业务逻辑处理,调用DAO方法来执行数据库操作,并可能...

    Hibernate通用Dao设计。

    - 针对特殊需求,可以在通用DAO的基础上,为特定实体类创建特定的DAO,添加特定的方法。 - 结合MyBatis或其他ORM工具,实现混合使用,根据场景选择最合适的访问方式。 综上所述,Hibernate通用DAO设计的核心在于...

    高仿JPA自定义通用DAO

    自定义通用DAO实现基本的CRUD,比如: public interface BaseDao&lt;T&gt; { int insert(T obj) throws Exception; int update(T obj) throws Exception; int deleteByPrimaryKey(Object key) throws Exception; int ...

    Hibernate_通用DAO模式,一个写好的dao层

    本资源“Hibernate_通用DAO模式”提供了一种适用于不同类型表单的DAO实现,基于SSH(Struts2、Spring、Hibernate)框架,特别强调简洁、易懂和高可移植性。 首先,SSH框架是Java Web开发中的经典组合,Struts2负责...

    Hibernate 原生通用DAO

    **Hibernate原生通用DAO**是基于Hibernate框架设计的一种简化数据访问操作的方式,它模仿了Spring框架中的`HibernateTemplate`类,旨在提供一个简单易用的DAO(Data Access Object)层,方便开发人员进行数据库操作...

    ssm(Spring-springMVC-Mybatis)通用Dao框架

    SSM(Spring-SpringMVC-Mybatis)通用Dao框架是一个常见的Java Web开发架构,它整合了Spring、SpringMVC和Mybatis三个强大的开源框架,为开发者提供了便捷的数据访问和业务逻辑处理能力。这个框架的使用可以显著提高...

    Hibernate的通用dao

    **标题:“Hibernate的通用DAO”** 在Java编程领域,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者以面向对象的方式处理数据库操作,从而减少了对SQL的直接依赖。通用DAO(Data Access Object)是一...

    通用DAO

    通过这种方式,通用DAO可以处理任何符合特定规范(如拥有主键、属性名与数据库字段对应等)的实体类,大大减少了重复的代码。 在提供的"通用DAO源码及示例"中,我们可以看到具体的实现细节,如如何初始化数据库连接...

    Hibernate通用Dao

    通用dao,简单全面,所有dao都可以继承这个dao.

    JdbcTemplate通用泛型Dao实现

    通过定义一个泛型接口,我们可以创建一个通用的数据访问对象(DAO),这个DAO可以处理任何类型的实体类,只要它们遵循一定的规则,比如拥有ID字段。这样,我们就只需要编写一次DAO的实现,就可以为不同的数据表提供...

    JDBCTemplate+JavaPOJO实现通用DAO

    在这个"JDBCTemplate+JavaPOJO实现通用DAO"的项目中,我们将探讨如何利用这两者构建一个通用的DAO层。 首先,Java POJO(Plain Old Java Object)是指那些没有特殊约束的简单Java对象,通常用于表示数据库中的实体...

    mybatis 通用DAO 简单实现

    通用DAO的概念就是基于MyBatis,创建一个可复用的DAO接口和实现类,来处理基本的CRUD(Create、Read、Update、Delete)操作。 首先,我们来看一下通用DAO的简单实现。通常,我们会定义一个基类,如`BaseMapper&lt;T&gt;`...

    Java源代码一个简单的通用DAO实现(基于hibernate)

    Java源代码 一个简单的通用DAO实现 (基于hibernate)面向应用层按POJO类缓存hibernate的session对象.使用举例: DAO dao = DAOFactory.getDAO(POJO.class);//获得一个全局类单例的DAO实例 dao.save(pojo); 你也可以...

    hibernate spring通用dao

    spring集成hibernate通用dao,泛型,server都可以调用

Global site tag (gtag.js) - Google Analytics