Spring——JDBC——数据库
1.Spring 的数据访问哲学
数据访问的功能放到一个或者多个专注于此项任务的组件。这样的组件通常称为数据访问对象(data access object)DAO或者Repository。
为了避免应用与特定的数据访问策略耦合再一起,编写良好的Repository应用以接口的方式暴露功能。
为了将数据访问层与应用程序的其他部分隔离开来。Spring采用的方式之一就是提供统一的异常体系。这些异常都继承DataAccessException。它是一个非检测型异常,没有必要捕获Spring所抛出的数据访问异常。主要是触发的异常问题很多是不能再catch代码块中修复的。
2.数据访问的模板化
Spring将数据访问过程中固定的和可变的部分明确划分为两个不同的类:模板(template)和回调(callback)。模板管理过程中固定的部分,而回调处理自定义的数据访问代码。
固定部分:事务控制、管理资源以及异常处理;
Spring提供了多个可选模板。如果直接使用JDBC,可以选择jdbcTemplate。如果使用ORM框架,HibernateTemplate或JpaTemplate可能会更适合。
3.配置数据源
使用数据源连接池
Spring并没有提供数据源连接池实现,采用开源方案:
- Apache Commons DBCP(http://jakarata.apache.org/commons/dbcp);
- c3p0(http://sourceforge.net/project/c3p0/);
- BoneCP(http://jolbox.com);
<bean id="dataSource" class ="org.apche.commons.dbcp.BasicDataSource“
p:driverClassName="org.h2.Driver"
p:url = "jdbc:h2:tcp://localhost/~/Demo"
p:username="root"
p:password="******"
p:initialSize ="5"
p:maxActive ="10" />
@Bean
public BasicDataSource dataSource() {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("org.h2.Driver");
ds.setUrl("jdbc:h2:tcp://localhost/~/Demo");
ds.setUsername("root");
ds.setPassword("******");
ds.setInitialSize(5);
ds.setMaxIdle(10);
return ds;
}
4.使用JDBC模板
- jdbcTemplate:最基本的SpringJDBC模板,这个模板支持JDBC数据库访问功能以及基于索引参数的查询
- NamedParameterJdbcTemplate:执行查询时可以将值以命名参数的形式绑定到SQL中。
使用jdbcTemplate来插入数据
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
Spring——JDBC——数据库的更多相关文章
- Spring JDBC数据库开发
针对数据库操作,Spring框架提供了JdbcTemplate类. 1.Spring JDBC的配置 创建配置文件applicationContext.xml,添加如下代码: <!--配置数据源 ...
- Spring JDBC主从数据库配置
通过昨天学习的自定义配置注释的知识,探索了解一下web主从数据库的配置: 背景:主从数据库:主要是数据上的读写分离: 数据库的读写分离的好处? 1. 将读操作和写操作分离到不同的数据库上,避免主服务器 ...
- SpringBoot实战(四)之使用JDBC和Spring访问数据库
这里演示的是h2databse示例,所以简单的介绍普及下h2database相关知识 H2数据库是一个开源的关系型数据库. H2是一个嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提 ...
- 三种数据库访问——Spring JDBC
本篇随笔是上两篇的延续:三种数据库访问——原生JDBC:数据库连接池:Druid Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要 ...
- Spring JDBC主从数据库访问配置
通过昨天学习的自定义配置注释的知识,探索了解一下web主从数据库的配置: 背景:主从数据库:主要是数据上的读写分离: 数据库的读写分离的好处? 1. 将读操作和写操作分离到不同的数据库上,避免主服务器 ...
- Spring学习(四)——使用Spring JDBC访问数据库
本篇我们将在上一篇http://www.cnblogs.com/wenjingu/p/3824294.html的Demo程序的基础上增加数据持久层和业务层,实现登录验证功能. 1.修改gradle文件 ...
- 【Spring】Spring的数据库开发 - 1、Spring JDBC的配置和Spring JdbcTemplate的解析
Spring JDBC 文章目录 Spring JDBC Spring JdbcTemplate的解析 Spring JDBC的配置 简单记录-Java EE企业级应用开发教程(Spring+Spri ...
- Spring的数据库开发
Spring JDBC框架操作mysql数据库 Spring中的JDBC为我们省去连接和关闭数据库的代码,我们着重关注对数据库的操作.Sprin ...
- Spring 实现数据库读写分离
随着互联网的大型网站系统访问量的增高,数据库访问压力方面不断的显现而出,所以许多公司在数据库层面采用读写分离技术,也就是一个master,多个slave.master负责数据的实时更新或实时查询,而s ...
随机推荐
- CodeChef MAXDTREE(DP套DP)
题意 链接:https://www.codechef.com/problems/MAXDTREE 给定一个 \(n\) 个节点的树,其中 \(1\) 为根节点,每个点有点权,我们定义" ...
- [BZOJ1852] [MexicoOI06]最长不下降序列
[BZOJ1852] [MexicoOI06]最长不下降序列 额我也不知道是不是水过去的...和网上的另一篇题解对拍过了,但是拍不出来... 经过和神仙的讨论基本可以确定是对的了 考虑如下贪心 (我将 ...
- 一、WebAPI自定义过滤器的使用
一.WebAPI自定义过滤器的使用 1.注册过滤器 using System.Web.Http; using KYINT.WebAPIService.Handler; namespace KYINT. ...
- SWIG 3 中文手册——4. 脚本语言
目录 4 脚本语言 4.1 两种语言的概览 4.2 脚本语言如何调用 C? 4.2.1 包装器函数 4.2.2 变量链接 4.2.3 常量 4.2.4 结构体与类 4.2.5 代理类 4.3 构建脚本 ...
- ReentrantReadWriteLock 源码分析
ReentrantReadWriteLock 源码分析: 1:数据结构: 成员变量: private final ReentrantReadWriteLock.ReadLock readerLock ...
- UVA 583 分解质因数
Webster defines prime as:prime (prim) n. [ME, fr. MF, fem. of prin first, L primus; akin to L prior] ...
- linux 开机mount nfs
mount -t nfs 10.208.1.235:/home/gis/bigrasterdata/mxds/uploads /usr/local/website/upload/pythonmxds ...
- scrapy 使用
启动方式: 写一个启动文件,与配置文件同级 from scrapy.cmdline import execute import sys,os sys.path.append(os.path.dir ...
- 【BZOJ3328】PYXFIB(单位根反演,矩阵快速幂)
[BZOJ3328]PYXFIB(单位根反演,矩阵快速幂) 题面 BZOJ 题解 首先要求的式子是:\(\displaystyle \sum_{i=0}^n [k|i]{n\choose i}f_i\ ...
- 【模板整合计划】DP动态规划
[模板整合计划]DP动态规划 一:[背包] 1.[01背包] 采药 \([P1048]\) #include<algorithm> #include<cstdio> int T ...