文档章节

镜子的Spring之旅之攻略数据库

镜子哥哥
 镜子哥哥
发布于 2016/08/08 17:08
字数 589
阅读 7
收藏 0
点赞 0
评论 0

Part 1 零散的概念

DAO: 数据访问对象(data access object),提供数据访问和写入到数据库的一种方式,并通过接口发布功能,应用程序的其他部分就可以通过接口访问了。Spring提供DAO支持类,而将业务自己的DAO类作为它的子类。编写应用程序自己的DAO实现时,可继承DAO支持类,调用模板获取方法直接访问底层数据模板,也支持访问其与数据库通信的类

Spring提供很多数据访问异常(完善了JDBC简单的SQLException异常体制),且都继承自DataAccessException,非检查性异常,没有必要捕获。

数据访问模板化:Spring将数据访问过程中固定的和不可变的部分明确划分为两个不同的类,模板(template)和回调(callback)。针对不同的持久化平台,提供了多个模板。

Part2 配置数据源

使用JNDI数据源

<jee:jndi-lookup id = ”datasource”
jndi-name = ”/../..”
resource-name = ”true” />

jndi-name 指定JNDI中资源的名称, resourse-name应用程序应用在JAVA应用程序数据库中,值需为true,这样给定的jndi-name前会自动添加java:comp/env/前缀。

数据库连接池

Spring并没有提供其实现,可使用Jakarta Commons Database Connection Pooling(DBCP),最常用BasicDataSource,类似于Spring自带的DriverManagerDataScource:

<bean id = ”dataSource” class = ”org.apache.commons.dbcp.BasicDataSource”>
  <property name = ”driverClassName” value = ”org.jsqldb.jdbcDriver”>
  <property name = ”url” value = ”jdbc:hsqldb:hsql://localhost/../..”>
  <property name = ”username” value = ””>
  <property name = ”password” value = ””>
  ..
</bean> 

基于JDBC驱动的数据源 Spring中的最简单配置方式,两种,DriverManagerDataSource(每个连接请求都返回新建连接) 和 SingleConnectionDataSource(每个连接请求都返回同一个连接),没有可配置的池相关属性。 均位于org.springframework.jdbc.datasource包中。

<bean id = ”dataSource” 
class = ” org.springframework.jdbc.datasource.DriverManagerDataSource”>
  <property name = ”driverClassName” value = ”org.jsqldb.jdbcDriver”>
  <property name = ”url” value = ”jdbc:hsqldb:hsql://localhost/../..”>
  <property name = ”username” value = ””>
  <property name = ”password” value = ””>
</bean>

Part3 在Spring中使用JDBC

使用JDBC模板 Spring提供的3个模板JdbcTemplate,NamedParameterJdbcTemplate(已被合并到后者),SimpleJdbcTemplate。 配置SimpleJdbcTemplate:

<bean id = ”jdbcTemplate” 
  class =”org.springframework.jdbc.core.simple. SimpleJdbcTemplate”>
  <constructor-arg ref = ”datasource”>
</bean>

装配Dao

<bean id = “xDao” class = “…”>
 <property name = ”jdbcTemplate” ref = “jdbcTemplate”
</bean>

使用命名参数

使用JDBC DAO支持类

集成Hibernate或JPA

© 著作权归作者所有

共有 人打赏支持
镜子哥哥
粉丝 1
博文 19
码字总数 14425
作品 0
广州
【问题解决】SSM-@Transactional注解事务无效探讨

Spring SpringMVC MyBatis框架中-@Transactional注解事务无效解决方法 SpringMVC-Spring-MyBatis框架 数据库:SQL SERVER 2008 以前都是用的MySQL数据库,没有出现这个问题,现在换成sql ser...

qq_26525215 ⋅ 2017/08/21 ⋅ 0

第二章——Spring Boot启动器与依赖管理

强烈推荐选择支持依赖管理和可以发布到“Maven中央”仓库的构建系统。推荐使用Maven或Gradle。Spring Boot可以使用其他构建系统(例如,Ant),但支持得并不是很好。 1 依赖管理 Spring Boo...

Leech ⋅ 02/04 ⋅ 0

6月9日云栖精选夜读丨普京点赞中国数字经济背后 阿里巴巴正在改变俄罗斯商业

俄罗斯总统普京近日接受中央广播电视总台专访时,大力点赞中国发展数字经济的成就,称对中国物联网和电子商务印象深刻。 普京表示,中国在现代经济形态,以及诸如数字经济这样有发展前景的领...

yq传送门 ⋅ 06/11 ⋅ 0

spring boot 之依赖

spring boot 虽然不强制使用特殊的依赖。但是其提供了一些非常高效的依赖。其中最有如下几个: spring-boot-starter-parent spring-boot-starter-data-jpa数据库连接的依赖。 spring-cloud-c...

乾坤刀 ⋅ 05/28 ⋅ 0

一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用...

ityouknow ⋅ 05/16 ⋅ 0

一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,...

java高级架构牛人 ⋅ 05/14 ⋅ 0

一文读懂Spring Boot、微服务架构和大数据治理之间的故事

微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用...

纯洁微笑 ⋅ 05/10 ⋅ 0

6月9日云栖精选夜读丨普京点赞中国数字经济背后 阿里巴巴正在改变俄罗斯商业C

摘要: 俄罗斯总统普京近日接受中央广播电视总台专访时,大力点赞中国发展数字经济的成就,称对中国物联网和电子商务印象深刻。 普京表示,中国在现代经济形态,以及诸如数字经济这样有发展前...

传授知识的天使 ⋅ 06/12 ⋅ 0

Spring boot的简单rest服务(非xml方式配置)

背景 简单使用spring boot配置一个rest服务,数据库主要使用mysql没有使用spring演示时候使用的h2(一种内存数据库)和lombok(通过注解的方式生成getter和setter方法,因为要在IDEA上面安装...

亚林瓜子 ⋅ 06/14 ⋅ 0

Spring Data Commons 1.13.13 发布

Spring Data Commons 1.13.13 发布了。Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库、Map-Reduce 框架、云数据服务等等;另外也包含对关系数...

淡漠悠然 ⋅ 06/13 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HiSDP —— 高效的C++软件开发平台

目前阿里集团每天有近1000PB的数据是通过LogAgent采集的,为了让LogAgent做到资源占用节省和高效采集,背后是基于HiSDP去构建的。 缘由 当决定采用C++编程语言去开发一个软件时,紧接着所面临...

阿里云云栖社区 ⋅ 26分钟前 ⋅ 0

zookeeper-3.4.12 下载与安装教程

一、zookeeper下载地址 http://mirrors.hust.edu.cn/apache/zookeeper/ 二、启动教程 把压缩包放在指定目录下 第三: 进入 conf文件夹底下 zoo_sample.cfg 文件名改成 zoo.cfg 第四步: 进入b...

泉天下 ⋅ 27分钟前 ⋅ 0

Oracle 中文日期转换

SELECT TO_date('2011年11月11日', 'yy"年"mm"月"dd"日"') FROM DUAL; 1. Oracle无法识别中文格式,所以添加双引号。 2. 后面的格式是指字符串在转换前的格式,而不是指转换后的格式。...

江戸川 ⋅ 28分钟前 ⋅ 0

MySell:API Spring Boot

起步 类目 商品 订单

BeanHo ⋅ 31分钟前 ⋅ 0

Spring方法拦截器MethodInterceptor

参考资料 1、Spring方法拦截器MethodInterceptor 2、Sharding JDBC源码分析-JdbcMethodInvocation类的作用

哎小艾 ⋅ 34分钟前 ⋅ 0

正则表达式

元字符 元字符,又叫字符集,就是用一些特殊符号表示特定种类的字符或位置。 匹配字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 匹配...

wangchen1999 ⋅ 34分钟前 ⋅ 0

数据库数据导入Elasticsearch案例分享

基于bboss持久层和bboss elasticsearch客户端实现数据库数据导入es案例分享(支持各种数据库和各种es版本) 1.案例对应的源码 https://gitee.com/bboss/bboss-elastic/blob/master/bboss-el...

bboss ⋅ 35分钟前 ⋅ 0

动手---sbt(2)

参考 https://blog.csdn.net/leishangwen/article/details/46225587 建立一个chisel_max目录,文件内容如后面所述,现在开始执行命令: joe@joe-Aspire-Z3730:/media/sdb4/download/scala$ c......

whoisliang ⋅ 42分钟前 ⋅ 0

纯js实现最简单的文件上传(后台使用MultipartFile)

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>XMLHttpRequest上传文件</title> <script type="text/javascript"> //图片上传 var xhr......

孟飞阳 ⋅ 47分钟前 ⋅ 0

iOS宇宙大战游戏、调试工具、各种动画、AR相册、相机图片编辑等源码

iOS精选源码 日期时间选择器,swift Space Battle 宇宙大战 SpriteKit游戏源码 LLDebugTool - 便捷的IOS调试工具(新增截屏功能) 相机扫描or长按识别二维码、FMDB、键盘动态高度、定位等 动画...

sunnyaigd ⋅ 47分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部