`
zhaixiaofengJava
  • 浏览: 2109 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JDBC封装BaseDAO

阅读更多
BaseDAO 简单封装:

public class BaseDAO{
public Connection conn = null;

public static String JDBC_DRIVER = "";
public static String DB_URL = "";
public static String DB_USERNAME = "";
public static String DB_PASSWORD = "";

static{
Properties p = new Properties(){}


}
/** Get connection*/
public static Connection getConnection() throws ClassNotFoundException,SQLException{
Class.forName("JDBC_DRIVER");
Connection conn = DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD);
return conn;
}
/**Build preparedStatement object*/
private static PreparedStatement preparedStatement(String sql, Object[] params)throws SQLException{
PreparedStatement pstmt = null;
Connection conn = this.getConnection();
if(conn != null && sql != null){
pstmt = conn.preparedStatement(sql);
if(params != null){
for(int i = 1; i<params.length; i++){
pstmt.setObject[params[i-1]];
}
}
}
}
private static getObject(Class cls, ResultSet rs){
Field[] field = cls.getDeclaredFields();
Object info = cls.newInstance();
for(int i = 1; i<field.length;i++){
//Get propertied name
String name = field[i].getName();
//getter and setter method
name = "set" + name.substring(0,1).toUpperCase + name.substring(1);
//Get type
Class c = field[i].getType();
//Get method
Method method = cls.getMethod(name,c);
//if object have date type property , by example
Class c2 = Class.forName("java.sql.Date");
if(c == c2){
method.invoke(info,rs.getDate(i+1));
}else{
meothd.invoke(info,rs.getDate(i+1));
}
}
}
/**Operate insert, delete, update*/
public static int executeUpdate(String sql, Object [] params) throws SQLException{
int rowCount = 0;
Connection conn = this.getConnection();
PraparedStatement pstmt = preparedStatement();
if(conn != null &&  pstmt != null){
rowCount = pstmt.executeUpdate(sql);
}
return rowCount;
}
/**Operate select */
public List executeQuery(String sql , Object [] params) throws SQLException{
List list = new ArrayList();
Connection conn = getConnection();
PrepardStatement pstmt = preparedStatement();
ResultSet rs = null;
if(conn != null &&  pstmt != null){
rs = pstmt.executeQuery();
while(rs.next()){
//Get object by reflect
list.add(this.getObject,rs);
}
}
return list;
}
/**Close connnection*/
public static closeAll(Connection conn , PrepardStatement pstmt,ResultSet rs){
if(rs != null ){
rs.close();
rs = null;
}
if(pstmt != null){
pstmt.close();
pstmt = null;
}
if(conn != null){
conn.close();
conn = null;
}
}
}

简单易用、适合初学者!
分享到:
评论

相关推荐

    基于SpringJDBC的BaseDAO

    ### 基于Spring JDBC的BaseDAO实现与应用 #### 概述 在Java开发领域,尤其是企业级应用开发中,持久层框架是至关重要的组件之一。Spring框架提供了多种方式来处理数据库操作,其中Spring JDBC模块是轻量级且功能...

    基于JDBC封装的BaseDao(实例代码).rar_java编程

    "基于JDBC封装的BaseDao实例"是一个常见的设计模式,用于简化数据库操作,提高代码复用性,降低耦合度。BaseDao通常作为基类,提供通用的数据库操作方法,比如增删查改(CRUD)等。 首先,我们需要了解JDBC的基本...

    基于JDBC封装的BaseDao(实例代码)

    本篇文章将介绍一个基于JDBC封装的`BaseDao`实例,该实例提供了一个通用的DAO(Data Access Object)模板,可以应用于多种实体类的操作。 首先,`BaseDao`泛型类被定义为`&lt;T&gt;`,表示它可以处理任何类型的对象。类中...

    JDBC连接数据库BaseDao通用类(可以调用存储过程)

    ### JDBC与BaseDao通用类 #### JDBC(Java Database Connectivity) JDBC是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC定义了一系列的API,...

    最全的javaJDBC--BaseDao

    最全的javaJDBC技术的BaseDao,相当于框架封装了,引用之后直接调用其中的方法传递参数以及sql语句就可以使用了。

    spring4+hibernate4 封装BaseDao增删改查以及分页,,支持jdk1.7,不支持jdk1.8

    3. **BaseDao封装**:BaseDao是一般用于数据访问层的基类,它包含了通用的CRUD操作。在这个项目中,BaseDao可能已经定义了如`save()`, `update()`, `delete()`, `findById()`, `findAll()`等方法,以供其他特定的DAO...

    jdbcBaseDao

    `jdbcBaseDao` 是一个基于Java的数据库访问层基础类,它封装了JDBC(Java Database Connectivity)的一些常见操作,如增、删、改、查等,旨在简化数据库交互过程,提高代码的可读性和可维护性。对于初学者来说,理解...

    精简封装Basedao.pdf

    `BaseDao`接口的实现类(如`BaseDaoImpl`)通常会处理实际的数据库交互逻辑,比如使用JDBC API来执行SQL语句,处理结果集,以及处理异常。此外,为了提高代码的可读性和可维护性,还可以考虑使用预编译的SQL语句...

    JDBC通用封装类

    本资源是对JDBC的封装,方便在项目中使用,其中BaseDao.java是对JDBC操作的封装,使用时让自己的Dao类继承即可,然后调用其中的executeQuery和executeOthe分别执行DQL和DML操作。dbinfo.properties属性文件存储基本...

    basedao_basedao数据库_

    BaseDao是一种设计模式,它通常被用来作为数据库访问对象(DAO)的基础,用于封装数据库的基本CRUD(创建、读取、更新、删除)操作。这种模式可以提高代码复用性,降低业务逻辑与数据访问层的耦合度。 首先,我们来...

    Mybatis通用DAO设计封装(mybatis)

    Mybatis是一款轻量级的持久层框架,它避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。通过提供自定义SQL、存储过程以及高级映射,Mybatis使得开发者能够专注于编写高质量的代码,而无需关心底层数据库交互...

    封装jdbc,采用Map方式快速增删改数据库例子

    本文将深入探讨如何通过封装JDBC来提高数据库操作的效率,特别是使用Map数据结构实现快速的增删改操作。我们将以`BaseDao`类为例,位于项目的`util`包下。 首先,理解JDBC的基础知识是必要的。JDBC提供了一组接口和...

    封装过的jdbc包

    对jdbc简单封装,实现基本增删改查,使用时请用编译器导入继承BaseDao类即可

    BaseDao的封装

    在IT行业中,数据库操作是应用程序的核心部分,而`BaseDao`的封装则是一种常见的设计模式,用于简化数据库访问层(DAO)的实现。这个模式的主要目的是提高代码的可复用性和可维护性,减少重复的SQL操作代码。下面...

    BaseDao.java

    简单的JDBC封装类

    BaseDao.java,DaoUtil.java

    通过继承或实现`BaseDao`,其他具体的DAO类可以复用这些通用方法,减少代码重复,并保持良好的封装和单一职责原则。 例如,`BaseDao`可能包含以下方法: ```java public interface BaseDao&lt;T&gt; { void insert(T ...

    Spring声明式事务及BaseDao完整版

    3. **实现方式**:BaseDao通常基于JDBC或ORM框架(如Hibernate、MyBatis)实现,提供基本的SQL执行和结果映射功能。 4. **扩展性**:子类可以继承BaseDao,并根据业务需求添加特定的数据库操作方法。 四、Spring...

    java mysql baseDao

    总的来说,Java MySQL BaseDAO模式是Java开发中常用的一种设计模式,通过封装数据库连接和基本的SQL操作,降低了代码的复杂性,提高了开发效率。在使用时,需要结合实际的数据库结构和业务需求进行扩展和定制。

    baseDAO及其实现案例、jdbcUtil工具类、数据池c3p0、dbcp、druid驱动及实现方式

    首先,`BaseDAO`是一个设计模式,用于封装数据库的基本操作,如增、删、改、查。它的出现是为了减少代码的重复性,提高代码的可复用性和可维护性。`BaseDAO`通常会定义一些通用的方法,比如获取单个对象、获取集合、...

Global site tag (gtag.js) - Google Analytics