Spring jdbc中数据库操作对象化模型的实例详解

 更新时间:2017年09月14日 11:17:18   作者:flycw  
这篇文章主要介绍了Spring jdbc中数据库操作对象化模型的实例详解的相关资料,希望通过本文大家能够了解掌握这部分内容,需要的朋友可以参考下

Spring jdbc中数据库操作对象化模型的实例详解

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对象可以在多线程中重用。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 打开和关闭mysql服务的两种实现方法

    打开和关闭mysql服务的两种实现方法

    这篇文章主要介绍了打开和关闭mysql服务的两种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • win2003服务器下配置 MySQL 群集(Cluster)的方法

    win2003服务器下配置 MySQL 群集(Cluster)的方法

    MySQL 群集是 MySQL 适合于分布式计算环境的高可用、高冗余版本。它采用了 NDB Cluster 存储引擎,允许在 1 个群集中运行多个 MySQL 服务器。
    2010-12-12
  • MySQL query_cache_type 参数与使用详解

    MySQL query_cache_type 参数与使用详解

    这篇文章主要介绍了MySQL query_cache_type参数介绍,需要的朋友可以参考下
    2021-07-07
  • MySQL实现字符串截取的图文教程

    MySQL实现字符串截取的图文教程

    在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些,这篇文章主要给大家介绍了关于MySQL实现字符串截取的相关资料,需要的朋友可以参考下
    2022-03-03
  • Centos中安装多个mysql数据的配置实例

    Centos中安装多个mysql数据的配置实例

    最近因为单位项目扩充,需要在原线上数据库服务器上加装一个mysql实例(实际上就是从新编译安装一个非3306的自定义端口,不同目录的mysql),研究了一天,终于顺利搞定,这里把配置步骤发给大家,供大家学习使用
    2014-04-04
  • Mysql中报错函数floor()函数和rand()函数的配合使用及原理详解

    Mysql中报错函数floor()函数和rand()函数的配合使用及原理详解

    在项目中的SQL语句中遇到几个数值处理函数,看着有些懵,就小小的总结一下,这篇文章主要给大家介绍了关于Mysql中报错函数floor()函数和rand()函数的配合使用及原理的相关资料,需要的朋友可以参考下
    2022-07-07
  • MySQL 加密/压缩函数

    MySQL 加密/压缩函数

    在MySQL中,加密和压缩函数返回二进制串。对其中的许多函数而言,结果可能包含任意的字节值,如果想存储这些结果,你应该使用一个具有varbinary或者blob二进制串数据类型的列,这可避免潜在的删除尾部空白问题或者字符集转换问题。
    2009-12-12
  • MySQL与SQL Server的一些区别浅析

    MySQL与SQL Server的一些区别浅析

    这篇文章主要介绍了MySQL与SQL Server的一些区别浅析,本文罗列了MySQL与SQL Server的25个不同的地方,并对它们的分页技术的不同做了讲解,需要的朋友可以参考下
    2014-08-08
  • windows和linux安装mysql后启用日志管理功能的方法

    windows和linux安装mysql后启用日志管理功能的方法

    在默认情况下,mysql安装后是没有启用日志管理功能的,这给维护带来很多不便的地方,下面介绍windows和linux安装mysql后启用日志管理功能的方法
    2014-01-01
  • MySQL数据库设计概念及多表查询和事物操作

    MySQL数据库设计概念及多表查询和事物操作

    数据库设计就是根据业务系统具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型,本文给大家介绍MySQL数据库设计概念及多表查询和事物操作,感兴趣的朋友一起看看吧
    2022-05-05

最新评论