`
reasonsoft
  • 浏览: 47647 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

集成了一个框架(jdbc封装)

    博客分类:
  • java
阅读更多

                 最早是在ibm网站看到的一篇文章,标题好像是封装jdbc之类的,是哪间学校的硕士写的忘记了,(暂且称A君)但功能实在有限,只是初步实现了由java对象反射成后台的sql语句,模拟hibernate的面向对象持久化到数据库,但bug很多。后来又看到一篇文章重新改写了一下A君的源代码,基本实现了像hibernate根据java对象crud(增删改)功能。这次改动还是比较大的,我调试了一下,应用到oracle数据库上还是bug多多。而且如果真正应用到实际项目中还不行,缺点如下:

1)缺少容器级别的事务管理,事务应该由框架容器控制。开发人员只需要配置一下事务类型,无需关心事务回滚,异常出错等等问题。jdk的代理可以实现容器级别的事务管理,但缺点是每个类要有一个接口,导致class会很多。cglib代理很好的解决了这个问题,(忘记是哪个牛人写的了)一个class就可以了。这方面spring做得很好,支持jdk代理和cglib代理。

2)硬性用反射构成的后台sql语句bug很多,在日期类型字段上会出现很多问题。apache的BeanUtils是利用java的反射和自醒机制来读写javabean的属性的,有开源的为什么不用呢(~-__-~),详细可看apache.commons.beanutils.BeanUtils类。你的工程下面应该有这个包。如果你对此感兴趣可以到这里看看http://www.chinaitpower.com/A/2005-07-03/150232.html

                我花了大概大半个月的时间把上面那些问题修正了一番(那时我刚好入职现在的公司,有时间玩,哈哈),集成了一个不像样的框架(在jdbc上封装了一层),特点如下:

一,需支持的框架
1,只采用struts作为前端框架。版本有struts 1.x和struts2,也可以不要。
二,去掉了的重复的工作
1,不用管理数据库连接,只需配置一个property文件就可以完成。
2,不用这样db = new DataBaseConnection();conn = db.getConnection();每次都创建连接,销毁连接,不用大量重复的try,catch,finally块,由容器自动管理。类似于spring。
3,事务采用cglib类库管理,程序员无需关心事务回滚,异常出错等等问题,容器自动管理。事务采用元数据注解来配置。
4,结合了一个异常处理框架,所有异常只需要抛出,不需要在每个类中捕获处理,一个action基类就可以完成所有异常的捕获。
5,日志记录处理也在一个action基类里完成。
6,支持对象添加,不用写sql语句,或者只写少量sql语句就可以完成任务,类似于hibernate。
7,不用从resultSet获得的结果再封装成javabean,由容器自动完成,类似于hibernate。
三,示例:

Student vo = new Student();
vo.setId("1");
vo.setName("小明"); 
vo.setAge("23"); 
dao.insertData(vo); //添加一条记录
dao.updateData(vo,"name like '%小%'"); //更新
dao.deleteData(vo,null); //删除一条记录
dao.deleteDatas("age=23"); // 删除符合条件记录
Collection list= dao.findDatas("*", null, null, Student.class);//查询

四,例子使用

1,在app.properties配置一下mysql连接
#[mysql]
datasource.driverClassName=com.mysql.jdbc.Driver
datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
datasource.username=root
datasource.password=1234

2,还要加入mysql的驱动包,然后运行GeneralDAOExample.java测试,祝君好运

 

 

lib和src请看附件

  • sql.rar (221 Bytes)
  • 下载次数: 617
分享到:
评论
10 楼 chenjunt3 2012-02-16  
chenjunt3@163.com 谢谢!!
9 楼 ljz0898 2011-12-04  
你好 能否提供一些源码 谢谢  549070343@qq.com
8 楼 沙洲胡杨 2011-11-08  
您好,能给我发份源码吗?lbj2011@163.com
7 楼 longjayhc 2011-08-29  
longjayhc@hotmail.com    灰常感谢
6 楼 appleboy 2007-11-29  
apple.lzw@gmail.com
感谢分享
5 楼 godson_2003 2007-11-29  
dbclick@126.com

感谢分享
4 楼 reasonsoft 2007-11-29  
源代码太大了,需要源代码的同学留下email
3 楼 godson_2003 2007-11-29  
看了标题 感兴趣的还是源代码
2 楼 Julysea 2007-11-29  
"1,不用管理数据库连接,只需配置一个property文件就可以完成。"

如果是这样,在使用这个组件的同时,是不是还要使用管理链接的组件呢?如果是,楼上的组件做教学可能更合适。个人观点
1 楼 reasonsoft 2007-11-29  
更新了附件,eclipse直接导入即可,jdk要1.5以上的

相关推荐

    类似hibernate的jdbc封装

    标题提到的"类似hibernate的jdbc封装"就是这样的一个实践,它试图在不引入庞大框架的情况下,提供类似Hibernate的便捷性。 首先,我们来了解JDBC(Java Database Connectivity),它是Java中用于连接数据库的标准...

    Spring3MVC和JDBC的集成

    在IT行业中,Spring框架是Java开发中的一个核心组件,它为构建企业级应用提供了全面的解决方案。Spring3MVC是Spring框架的一个子模块,专门用于处理Web应用的模型-视图-控制器(MVC)架构。JDBC(Java Database ...

    轻量级封装jdbc 实现增删改查

    通常会有一个DbUtil或JdbcHelper类作为主要的入口点,提供静态方法供开发者调用。例如,`executeQuery(String sql, Object[] params)`用于执行查询,`executeUpdate(String sql, Object[] params)`用于执行更新操作...

    SSH框架封装demo

    SSH框架,全称为Struts2、...这个SSH框架封装demo可以帮助开发者快速理解如何将这三个框架整合起来,形成一个完整的应用程序。通过学习和实践,开发者能够掌握如何利用SSH框架有效地组织和管理代码,提高开发效率。

    JDBC封装oracle增删改查类

    本教程将详细讲解如何封装一个针对Oracle数据库的增删改查(CRUD)类,以及如何编写JUnit测试用例确保其功能的正确性。 首先,我们需要了解JDBC的基本操作流程。这通常包括以下几个步骤: 1. **加载驱动**:通过`...

    SpringBoot整合hive-jdbc示例

    在SpringBoot项目中,我们可以创建一个`HiveJdbcClient`服务类,封装Hive的连接和操作方法: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core....

    Java框架JSP + Servlet + Jdbc.zip

    然后Servlet将处理结果封装成一个模型对象,传递给JSP,JSP负责渲染视图并返回给用户。 - **MVC模式**:这种模式被称为Model-View-Controller(MVC)架构,JSP作为View负责展示,Servlet作为Controller处理请求和...

    纯净web框架,s2sh+jdbc+Ant+异常处理

    本文将深入探讨一个简单纯净的Web框架——S2SH(Struts2 + Spring + Hibernate),并结合JDBC、Ant构建项目,以及异常处理机制,为初学者提供一个清晰的学习路径。 首先,让我们了解S2SH框架的核心组件: 1. **...

    SpringMVC3 + SpringJDBC整合 源码。

    在开发环境中,Eclipse是一个强大的集成开发环境(IDE),它提供了对Java、Web和Spring框架的强大支持。开发者可以在Eclipse中创建项目,导入SpringMVC和SpringJDBC的依赖,编写和调试代码,以及配置Tomcat等服务器...

    基于SpringJDBC的轻量级ORM框架sborm.zip

    template实例跳来跳去,硬编码引入,写一个业务还得看看到底该用哪个template,尤其是多个数据库共用一个template实例的时候。 3、QueryBuilder:单表查询基本上都可以实现零Sql(除非查询条件特别复杂的),更新...

    spring-jdbc-dao

    2. Spring JDBC封装:Spring JDBC通过Template类(如JdbcTemplate)对JDBC进行了高度抽象和封装,减少了代码量,提高了代码的可读性和可维护性。 二、Spring JDBC DAO设计 1. DAO模式:DAO模式是一种设计模式,用于...

    ssh(三大框架)集成

    本文将详细介绍如何集成这三个框架,并通过一个简单的登录示例来演示其用法。 #### 二、环境搭建与依赖 ##### 2.1 环境需求 | 编号 | 环境 | 版本 | |------|--------|---------| | 1 | JDK | 1.6+ | | 2 | ...

    struts+spring+jdbc集成步骤

    Struts、Spring和Jdbc的集成是其中的一个经典组合,它们各自的优势互补,共同构建出高效、可维护的Web应用系统。下面将详细阐述这一集成过程的关键步骤。 #### 一、建立WEB PROJECT 首先,通过MyEclipse创建一个新...

    java开发之SpringMVC + Spring + SpringJDBC整合.zip

    总之,SpringMVC、Spring和SpringJDBC的整合为Java Web开发提供了一个强大的解决方案,它们的相互配合可以实现灵活的控制流、高效的数据库访问以及整洁的代码结构。理解并熟练掌握这些技术,对于提升Java开发能力...

    spring-jdbc jar包.rar

    Spring JDBC是Spring框架的一个重要组成部分,它提供了一种简化传统JDBC编程的抽象层,使得开发者能够更轻松、更安全地处理数据库交互。"spring-jdbc jar包"包含了Spring框架中与JDBC相关的所有类和接口,为开发者...

    spring框架+jdbc+事务+Junit练习(银行转账)

    JDBC(Java Database Connectivity)是Java连接数据库的标准接口,虽然直接使用JDBC编写代码繁琐,但通过Spring的封装,我们可以利用JdbcTemplate进行简单、安全的数据库操作。例如,转账操作可能涉及到更新两个账户...

    JDBC工具类

    通过封装这样一个JDBC工具类,开发者可以更便捷地执行数据库操作,而无需每次都手动处理连接、预编译、结果集等步骤,大大提高了开发效率。同时,良好的注释有助于其他团队成员理解和使用这个工具类。

    Sping封装的JDBC应用小例子

    首先,JdbcTemplate是Spring框架中的一个核心组件,它位于`org.springframework.jdbc.core`包下。这个模板类为JDBC提供了一种声明式的编程方式,从而避免了手动处理连接、事务和结果集等繁琐工作,降低了出错的可能...

    ssm框架的一个简单案例

    这个"ssm框架的一个简单案例"旨在帮助开发者理解如何将这三个框架集成到一起,创建一个完整的Web应用。 Spring框架是核心,它提供了一个容器来管理对象(Bean)的生命周期和依赖注入。在本案例中,Spring负责处理...

    spring中jdbc的操作

    Spring JDBC还引入了SqlSessionTemplate,这是MyBatis与Spring集成中的一个重要组件,但在这个上下文中,它主要与MyBatis框架相关,而JdbcTemplate则更直接地与Spring JDBC框架集成。 在实际使用中,我们需要配置...

Global site tag (gtag.js) - Google Analytics