文档章节

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

镜子哥哥
 镜子哥哥
发布于 2016/08/08 17:08
字数 589
阅读 7
收藏 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
广州
私信 提问
使用Spring Profile和Mybatis进行多个数据源(H2和Mysql)的切换

最近在做WebMagic的后台,遇到一个问题:后台用到了数据库,本来理想情况下是用Mysql,但是为了做到开箱即用,也整合了一个嵌入式数据库H2。这里面就有个问题了,如何用一套代码,提供对Mys...

黄亿华
2014/03/20
0
3
Spring Cloud升级Finchley版本小结及遇到的坑

Finchley正式RELEASE版本发布也有段时间了,如果想体验spring boot2.0的魅力以及spring 5.0的新功能,自然是要把Spring Cloud升级至F版。升级过程小结如下 准备工作 升级步骤非常简单,修改一...

暴走的初号机
11/21
0
0
【问题解决】SSM-@Transactional注解事务无效探讨

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

qq_26525215
2017/08/21
0
0
java EE学习笔记 ---- Hibernate/Struts/Spring

2013/1/3 开始Java EE之旅 Java EE核心应是框架,先了解几个框架 Hibernate ORM工具,通过文件把值对象和数据表之间建立一个映射关系。 这句话个人理解是:实现了将应用程序的数据读写到数据...

fcsong000833
2013/01/03
0
0
MongoDB整合Spring 详细讲解(含代码)

写这篇文章也做了下思考,首先是本人技术欠佳。但就是喜欢研究一些东西。因为在此之前有很多的朋友已经写过类似的,很多我也看过,但是讲解的不够深入。对有些朋友提出的问题不能给出答案。在...

cuiran
2012/12/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

自定义 Maven 的 repositories

有时,应用中需要一些比较新的依赖,而这些依赖并没有正式发布,还是处于milestone或者是snapshot阶段,并不能从中央仓库或者镜像站上下载到。此时,就需要 自定义Maven的<repositories>。 ...

waylau
40分钟前
1
0
徒手写一个es6代码库

mkdir democd demonpm initnpm install -g babelnpm install -g babel-clinpm install --save-dev babel-preset-es2015-node5 在项目目录创建两个文件夹 functional-playground ......

lilugirl
40分钟前
2
0
linux定位应用问题的一些常用命令,特别针对内存和线程分析的dump命令

1.jps找出进程号,找到对应的进程号后面才好继续操作 2.linux查看进程详细信息 ps -ef | grep 进程ID 3. dump内存信息 Jmap -dump:format=b,file=YYMMddhhmm.dump pid 4.top查看cpu占用信息 ...

noob_chr
41分钟前
1
0
Android TV开发-按键焦点

写在前面 按键焦点过程了解 2.1 dispatchKeyEvent 过程了解 2.2 焦点查找请求过程了解 1.2.1 第一次获取焦点 1.2.3 按键焦点 焦点控制 焦点记忆 应用场景 参考资料 [TOC] 1. 写在前面 工...

冰雪情缘l
41分钟前
1
0
java框架学习日志-3

这章主要是补充一些ioc创建对象的方式,ioc容器在写好<bean></bean>的时候就已经创建对象了。在之前的例子中,一直都是无参的构造方法。下面给出有参的构造方法的对象的创建,没有什么难点重...

白话
43分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部