最近在Review我自认为得意的数据基线生成代码的时候,发现了一些使用jdbc的问题,而这些问题都是在Rod JohnSon大牛在《expert one on one……》书中所阐述到的,实在是羞愧
。
由于使用的是hsqldb数据库,并且数据库都是动态生成的,无法使用Hibernate这样的工具来进行ORM配置,需要使用JDBC来完成表结构的建立,数据的存储,查询等操作。
这里运用的时候主要出现了几个问题:
- rs. ps用完了之后没有调用close()方法。
- 父类传输给子类的是Connection,不应该直接将Connection传输给子类,而是应该对该Connection进行封装,比如说做一个ConnectionWrapper,不提供Connection的close()方法,这样就能保证子类不会关掉该数据库的连接,或者把connection置为null了。
- Template方法中提炼的Template模板方法的粒度还有问题。在子类中出现了很多对rs,ps的操作,而这些操作如果粒度划分合适的话,可以在父类中实现。子类不用操心JDBC的存储和查询操作。
- Template所遵循的Workflow会有一些挂出点,每个子类可以根据需要选择遵循那个workflow。目前的做法是在Template中将可选的Workflow方法写好,然后子类去覆盖选择方法。如果更好的话,用Callback方法似乎更好一些。
羞愧羞愧,昨天发生内存溢出问题,我第一想到的就是JDBC使用的问题。检查一下居然有这么多。Rod JohnSon关于JDBC的论述实在是经典,所设计的Spring JDBC框架有很多我可以学习的地方,希望吸取Spring JDBC Framework的精华,提高设计能力。
分享到:
相关推荐
本篇文章将深入探讨Spring JDBC如何通过注解来实现事务管理。 1. **Spring JDBC简介** Spring JDBC提供了一个JdbcTemplate类,它封装了常见的JDBC操作,如执行SQL查询、更新、调用存储过程等,减少了代码量和出错...
javaEE 实验三 Spring JDBC与事务管理, 一、实验目的 1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式; 5、掌握...
通过这个SpringJDBC.rar的案例,初学者可以学习到如何配置DataSource,如何创建JdbcTemplate实例,以及如何编写和执行SQL语句。同时,实践中还可以了解到如何将Spring JDBC整合到Spring Boot项目中,以及如何处理...
这个`springjdbc.zip`压缩包很可能包含了示例代码和配置文件,用于演示如何使用Spring JDBC来执行基本的数据库操作,如增、删、改、查。 1. **Spring JDBC模块**:Spring JDBC模块主要由`org.springframework.jdbc`...
Spring框架是Java开发中广泛应用的一个开源框架,它主要由Spring Core、Spring MVC和Spring JDBC等模块组成。在本文中,我们将深入探讨这三个核心模块以及它们的功能和整合方式。 首先,Spring Core是整个Spring...
这个“SpringJDBC.rar”压缩包文件可能包含了关于如何在Spring框架中集成和使用JDBC的相关示例和教程。下面将详细解释Spring JDBC的核心概念、功能以及使用方法。 首先,Spring JDBC的核心目标是简化传统的JDBC编程...
SpringMVC和SpringJDBC是Java开发中两个重要的框架,它们分别是Spring框架在Web层和数据访问层的应用。本文将详细介绍这两个组件的核心概念、工作原理以及如何整合使用,旨在帮助开发者更好地理解和应用。 **...
Spring JDBC是Spring框架中的一个核心模块,主要用于简化Java数据库编程。在本文中,我们将深入探讨Spring JDBC的应用实例,了解如何利用它来实现高效且灵活的数据访问。首先,我们需要理解Spring JDBC是如何通过...
本话题主要关注Spring的两个重要模块:事务管理和Spring JDBC。这些知识点对于任何使用Spring进行后端开发的程序员来说都是至关重要的。 首先,我们来深入理解Spring事务管理。事务是数据库操作的基本单元,它确保...
Spring JDBC是Spring框架的一部分,它提供了一种抽象层,使得开发者可以更方便地使用Java数据库连接(JDBC)进行数据库操作。Spring JDBC的核心是JdbcTemplate类,它简化了执行SQL语句的过程,减少了代码量,并提高...
Spring JDBC是Spring框架的一个核心模块,它为Java数据库连接(JDBC)提供了一种抽象层,使得开发者可以更轻松地处理数据库操作。Spring JDBC的主要目标是简化数据访问,减少直接使用JDBC时的繁琐工作,如手动管理...
在本项目中,我们主要探讨的是如何将Spring MVC、Spring框架和Spring JDBC这三大核心组件进行整合,构建一个完整的Java Web应用程序。这个整合Demo旨在帮助开发者理解这些技术的协同工作方式,以及如何在实际开发中...
Spring JDBC是Spring框架的一个核心模块,它为Java数据库连接(JDBC)提供了一种抽象层,使得开发者可以更轻松地处理数据库操作。Spring JDBC模块的主要目标是减少对JDBC API的直接依赖,通过提供一种更加高级、易于...
《Spring MVC + Spring + Spring JDBC 整合实例详解》 在Java Web开发中,Spring框架因其强大的功能和灵活的设计而备受推崇。Spring MVC、Spring核心模块以及Spring JDBC是Spring框架中的三大重要组成部分,它们...
在SpringMVC3与SpringJDBC的整合中,通常会使用`@Controller`注解来标记处理HTTP请求的类,`@RequestMapping`注解来映射URL到具体的处理方法。为了实现CRUD操作,开发者会定义不同的方法来处理增删改查的请求,并...
在Spring MVC中,控制器通常是实现了`@Controller`注解的类。 4. **服务层(Service)**:包含业务逻辑,处理业务规则和事务。服务层通常会注入DAO,通过Spring的DI功能实现。 5. **数据访问层(DAO)**:处理...
Spring JDBC是Spring框架的一部分,它提供了一种抽象层,使得我们能够更方便地使用Java数据库连接(JDBC)来处理数据库操作,如增删改查(CRUD)。在这个主题下,我们将深入探讨Spring JDBC的核心概念、配置、以及...
《Java开发中的SpringMVC + Spring + SpringJDBC整合详解》 在Java开发领域,Spring框架因其强大的功能和灵活性而备受推崇。SpringMVC、Spring和SpringJDBC是Spring框架中的核心组件,它们的整合使用可以构建出高效...
Spring JDBC模块是Spring框架的一部分,它简化了Java Database Connectivity (JDBC)的使用,使得数据库操作更加简单且易于管理。本篇文章将深入探讨如何使用Spring JDBC在Spring 2.5版本中与MySQL数据库进行交互,...
Spring JDBC是Spring框架的一个核心模块,它为Java开发者提供了便捷的方式来操作数据库。Spring JDBC通过抽象出数据库连接管理、事务处理以及结果集处理等繁琐工作,使得开发者可以专注于SQL语句和业务逻辑,而不必...