在spring中使用数据库
若要在spring中使用数据库,首先需要配置数据源。
1、使用数据源连接池,可以使用DBCP(Data Base Connection Pooling)
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="username">xx</property>
<property name="password">xx</property>
<property name="url">xx</property>
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
</bean>
2、使用spring 自带的基于JDBC驱动的数据源。spring提供了两种数据源对象:
DriverManagerDataSource:在每个连接请求时都会返回一个新建的连接。
SingleConnectionDataSource:在每个连接请求时都会返回同一个连接。可看做只有一个连接。
这两个数据源的配置与BasicDataSource配置类似,唯一的区别是BasicDataSource提供连接池功能。
3、使用JDBC模板:使用SimpleJdbcTemplate访问数据
需要在spring上下文中配置SimpleJdbcTemplate Bean:如:
<bean id="simpleTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
<constructor-arg ref="datasource"></constructor-arg>
</bean>
在Dao层使用模板访问数据时:
@Component("userDao")
public class UserDaoImpl implements UserDao {
private static final String INSERT_SQL = "insert into user(username,password) values(:username,:passwprd)";
private SimpleJdbcTemplate simpleTemplate;
public void addUser(Monkey monkey) {
Map<String,String> params = new HashMap<String,String>();
params.put("username", monkey.getName());
params.put("password", monkey.getPassword());
simpleTemplate.update(INSERT_SQL, params);
}
@Autowired
public void setSimpleTemplate(SimpleJdbcTemplate simpleTemplate) {
this.simpleTemplate = simpleTemplate;
}
}
4、使用spring的Dao 支持类:SimpleJdbcDaoSupport
@Component("userDao")
public class UserDaoImpl extends SimpleJdbcDaoSupport implements UserDao {
private static final String INSERT_SQL = "insert into user(username,password) values(:username,:passwprd)";
@Autowired
public void setDatasource(DataSource datasource) {
this.setDatasource(datasource);
}
public void addUser(Monkey monkey) {
Map<String,String> params = new HashMap<String,String>();
params.put("username", monkey.getName());
params.put("password", monkey.getPassword());
this.getJdbcTemplate().update(INSERT_SQL, params);
}
}
JdbcDaoSupport中的一个方法:
/**
* Set the JDBC DataSource to be used by this DAO.
*/
public final void setDataSource(DataSource dataSource) {
if (this.jdbcTemplate == null || dataSource != this.jdbcTemplate.getDataSource()) {
this.jdbcTemplate = createJdbcTemplate(dataSource);
initTemplateConfig();
}
}
在spring中使用数据库的更多相关文章
- [Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction
1.Spring中的数据库支持 把具有相同功能的代码模板抽取到一个工具类中.2.关于jdbc template的应用 jdbcTemplate模板操作类,把访问jdbc的模板抽取到template中, ...
- Spring中的数据库事物管理
Spring中的数据库事物管理 只要给方法加一个@Transactional注解就可以了 例如:
- Spring中获取数据库表主键序列
在程序开发中,我们经常有写数据库表的操作,数据表中经常带有主键自增序列,如何获取自增序列.spring中提供了相应的类 DataFieldMaxValueIncrementer. DataFieldM ...
- spring中的数据库操作类
例子一: package cn.itcast.service.impl; import java.util.List; import javax.sql.DataSource; import org. ...
- Spring中使用JDBC
Spring中的数据库异常体系 使用JDBC(不使用Spring)的时候,我们需要强制捕获SQLException,否则无法使用JDBC处理任何事情.SQLException表示尝试访问数据库的时候出 ...
- 在Spring Boot中使用数据库事务
我们在前面已经分别介绍了如何在Spring Boot中使用JPA(初识在Spring Boot中使用JPA)以及如何在Spring Boot中输出REST资源(在Spring Boot中输出REST资 ...
- spring对数据库的操作、spring中事务管理的介绍与操作
jdbcTemplate的入门 创建maven工程 此处省略 导入依赖 <!-- https://mvnrepository.com/artifact/org.springframework/s ...
- 各种数据库(oracle、mysql、sqlserver等)在Spring中数据源的配置和JDBC驱动包----转
在开发基于数据库的应用系统时,需要在项目中进行数据源的配置来为数据 库的操作取得数据库连接.配置不同数据库的数据源的方法大体上都是相同的,不同的只是不同数据库的JDBC驱动类和连接URL以及相应的数据 ...
- spring中操作mysql数据库
就是在spring中,对mysql数据库进行增删改查的样例,很easy. 文件结构 maven的pom.xml文件,里面用到的几个很重要的jar包都有 <project xmlns=" ...
随机推荐
- 图上两点之间的第k最短路径的长度 ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven
131072K One day in the jail, F·F invites Jolyne Kujo (JOJO in brief) to play tennis with her. Howe ...
- selenium2中的TestNg注解和数据驱动的简介及使用
TestNg常用注解介绍,先来张图: 先看一下,以上各个注释的运行次序: @Test 表示的意义: 1.表示示该方法是一个测试方法,在运行时,会自动的运行有@Test注脚的方法. 示例: @Be ...
- UTV - URL Tag Validation
What`s UTV 1.URL Tag Validation 2.Special format of URL for preventing unauthorized usage and access ...
- 常用软件URL
1.MSDN:https://msdn.itellyou.cn/ 2.软碟通(UltraISO)http://rj.baidu.com/soft/detail/11522.html?ald Ultra ...
- 【185天】黑马程序员27天视频学习笔记【Day14-下】
叨逼叨两句 不容易,白天被叫去帮忙,不得已晚上来挑灯夜战,熬到2点,总算完成任务了. 我打算下周开始换一个更新时间,每次把deadline设置为晚上12点,都会接近或者超过这个时间,之后改成中午12点 ...
- TensorFlow——热身运动:简单的线性回归
过程: 先用numpy建立100个数据点,再用梯度下滑工具来拟合,得到完美的回归线. # _*_coding:utf-8_*_ import tensorflow as tf import numpy ...
- 关于EF调用存储过程那点事...
最近研究了下EF怎么调用 数据库的分页存储过程,发现还是很不错的 1.数据库存储过程如下,一个简单的不含条件判断的 2.然后新建数据模型中选择存储过程: : 3.EF会自动生存一个返回复杂类型(Obj ...
- iOS学习笔记31-从图册获取图片和视频
一.从图册中获取本地图片和视频 从图册中获取文件,我们使用的是UIImagePickerController,这个类我们在之前的摄像头中使用过,这里是链接:iOS学习笔记27-摄像头,这里我们使用的是 ...
- 【Luogu】P2634聪聪可可(树形DP)
题目链接 水题,时限放得非常宽,暴力DP随便套上一波register就能卡过去. 唯一的遗憾是5A. 树形DP,s[i][j]表示以i为根的子树里距i的距离%3=j的点数,f[i]表示i为根的子树内一 ...
- ubuntu系统14.04安装php5
背景: 阅读新闻 Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL [日期:2014-05-27] 来源:imcn.me 作者:L ...