Spring Jdbc数据库操作对象化
使用面向对象方式表示关系数据库的操作,实现一个线程安全可复用的对象模型,其顶级父类接口RdbmsOperation.
SqlOperation继承该接口,实现数据库的select, update, call等操作。
1.查询接口:SqlQuery
1) GenericSqlQuery, UpdatableSqlQuery, MappingSqlQueryWithParameter
2) SqlUpdate, BatchSqlUpdate
3) SqlCall
1) 将数据库操作select封装为对象,查询操作的基类是SqlQuery,所有查询都可以使用该类表示,Spring JDBC还提供了一些更容易使用的MappingSqlQueryWithParameters和MappingSqlQuery用于将结果集映射为Java对象,查询对象类还提供了两个扩展UpdatableSqlQuery和SqlFunction;
2) 即增删改操作,将数据库操作insert 、update、delete封装为对象,增删改基类是SqlUpdate,当然还提供了BatchSqlUpdate用于批处理;
3) 存储过程及函数调用封装为对象,基类是SqlCall类,提供了StoredProcedure实现。
-----------------------------------------------------------------------------------------------
数据库连接
JDBC:
spring jdbc通过DataSource控制数据库连接即通过其实现子类获取。
1) DriverManagerDataSource: 简单封装DriverManager.getConnection()
2) SingleConnectionDataSource: 内部封装一个链接,不会关闭不能再多线程使用,用于测试
3) LazyConnectionDataSourceProxy: 封装DataSource,用于延迟获取数据库连接,只有在真正创建Statement等时才获取连接,因此再说实际项目中最后使用该代理包装原始DataSource从而使得只有在真正需要连接时才去获取。
Vendor:
提供的DataSource实现主要有C3P0/Proxool/DBCP/ 等,这些实现都具有数据库连接池能力。
DataSourceUtils: Spring JDBC抽象框架内部都是通过它的getConnection(DataSource dataSource)方法获取数据库连接,releaseConnection(Connection con, DataSource dataSource) 用于释放数据库连接,DataSourceUtils用于支持Spring管理事务,只有使用DataSourceUtils获取的连接才具有Spring管理事务。
-----------------------------------------------------------------------------------------------
Spring JDBC通过DaoSupport抽象类提供一致的数据库访问。
1) JdbcDaoSupport: 支持一致的JdbcTemplate访问
2) NamedParameterJdbcDaoSupport: JdbcDaoSupport子类,提供了NamedParameterJdbcTemplate的访问
3) SimpleJdbcDaoSupport: JdbcDaoSupport子类,提供了SimpleJdbcTemplate访问
由于JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate类使用DataSourceUtils获取及释放连接,而且连接是与线程绑定的,因此这些JDBC模板类是线程安全的,即JdbcTemplate对象可以在多线程中重用。
相关推荐
【标题】"maven-springMVC-springJDBC-Demo"是一个综合性的项目示例,它演示了如何使用Maven、Spring MVC和Spring JDBC在Java Web开发中构建一个简单的应用。这个Demo旨在帮助开发者理解这三大技术的集成与协同工作...
下面我们将深入探讨Spring JDBC中的数据库操作对象化模型。 首先,Spring JDBC中的核心接口是`RdbmsOperation`,它是所有数据库操作对象的顶级父接口。`SqlOperation`接口继承自`RdbmsOperation`,并进一步实现了...
Spring JDBC的主要目标是简化传统的JDBC编程模型,通过提供模板类和数据访问对象(DAO)支持,来处理数据库操作的繁琐过程,如连接管理、事务处理和异常转换等。这一版本3.0.5的发布,进一步优化了性能和稳定性。 ...
例如,Spring JDBC提供了一层抽象,简化了数据库操作,而ORM模块则支持Hibernate、MyBatis等ORM框架的集成。 3. **Web**:Web模块包含两个部分:Web和Web-Servlet。Web-Servlet模块是Spring MVC的基石,提供了模型-...
总结起来,Spring Data JDBC通过提供高级的抽象和自动化,降低了数据库操作的复杂性,提高了开发效率,而JDBC则是底层的数据库访问API,灵活性更高但需要更多的手动配置和代码编写。根据项目需求和团队技能,开发者...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建Web应用程序提供了一种模型-视图-控制器(MVC)架构。在本压缩包中包含的是Spring MVC 4.3.4版本的jar包,这是一个稳定且广泛使用的版本。这个版本的Spring ...
8. **spring-jdbc.jar**:提供了数据库访问的支持,简化了JDBC的操作,如数据库连接池的配置、事务管理等。 9. **spring-tx.jar**:事务管理模块,支持编程式和声明式事务管理,适用于多种事务API。 10. **spring-...
6. **spring-jdbc-5.0.2.RELEASE-javadoc.jar**:数据访问/集成层的一部分,提供了与JDBC交互的抽象层,简化了数据库操作,包括模板和DAO支持。 7. **spring-aop-5.0.2.RELEASE-javadoc.jar**:面向切面编程模块,...
在数据库交互方面,Spring JDBC和ORM(对象关系映射)模块提供了与各种数据库的灵活集成。4.2.4版本增强了对JDBC模板和数据源的管理,同时支持多种ORM框架,如Hibernate、MyBatis等。事务管理通过`@Transactional`...
Spring还提供了强大的数据访问抽象,包括JDBC、ORM(对象关系映射)和JPA支持。在3.2.13.RELEASE中,我们可以看到Spring如何通过TransactionManager管理数据库事务,以及它如何与Hibernate、JPA等ORM框架集成。 ...
这个`springjdbc.zip`压缩包很可能包含了示例代码和配置文件,用于演示如何使用Spring JDBC来执行基本的数据库操作,如增、删、改、查。 1. **Spring JDBC模块**:Spring JDBC模块主要由`org.springframework.jdbc`...
Spring JDBC模块简化了数据库操作,提供了模板和回调机制,而ORM模块则让开发者可以使用对象模型来处理数据库操作,无需关心底层SQL。 在Web开发领域,Spring MVC是Spring Framework的一部分,提供了一个强大的MVC...
- **Spring JDBC**和**JPA**:提供对数据库操作的支持,JDBC抽象层简化了数据库访问,JPA则实现了ORM(对象关系映射)。 - **Spring Test**:包含了测试支持,帮助开发者进行单元测试和集成测试。 4. **5.3.7....
对于JDBC,Spring引入了RowMapper和ResultSetExtractor,方便将数据库查询结果转换为Java对象。 在Web开发方面,Spring MVC是核心组件之一。在4.3.7版本中,它支持了更丰富的HTTP注解,如`@RequestMapping`、`@...
Spring MVC是Spring框架中的Web层组件,用于构建基于模型-视图-控制器(Model-View-Controller, MVC)架构的Web应用程序。Spring MVC提供了一种组织应用逻辑的方式,它处理HTTP请求,调度控制器,与模型交互,并最终...
首先,Spring MVC是Spring框架的一个模块,专门用于构建Web应用的模型-视图-控制器(MVC)架构。它提供了一个分离关注点的方式,使得业务逻辑、数据处理和用户界面可以各自独立发展。Spring MVC通过...
在Web开发中,Spring MVC作为核心组件,提供了模型-视图-控制器架构,用于构建高效、灵活的Web应用。5.0版本增强了WebSocket支持,允许实时双向通信,从而可以构建更先进的Web应用。另外,Spring WebFlux是一个反应...
通过Spring MVC处理HTTP请求,Spring核心模块提供依赖管理和AOP支持,Spring JDBC则简化了数据库操作。这样的架构使得应用更易于扩展和维护,同时也提高了开发效率。在实际项目中,我们可以通过阅读提供的源码,深入...
"SPRING-JDBC-independent-entities"这个主题着重强调了Spring JDBC如何支持与数据库交互时使用独立的实体类,也就是不依赖于特定ORM框架(如Hibernate)的对象模型。 1. **独立实体的概念** 在Spring JDBC中,...