用了jdbc连接池之后,我们会发现连接对象的复用性更高了,程序整体运行的性能也更高了。但是我们在做JDBC操作的时候还是比较麻烦,要定义sql,执行sql,设置参数,处理结果。

特别是当我们要做查询操作的时候,处理结果会变得相当麻烦。我们要把数据封装成对象,然后从结果集里获取数据,然后再创建对象,给对象属性赋值。这个过程很麻烦,都是体力活。我们只希望定义sql,然后把sql执行了,体力活不希望自己做。而JDBCtemplate就能帮我们做这些体力活。

druid+JDBCTemplate使用步骤:

  1.导入JDBCTemplate jar包

  

JDBCTemplate依赖于数据库连接池,所以还需要druid相关的jar包或者是其他连接池jar包

如果使用的是 druid jdbcTemplate ,需要导入JDBCTemplate jar包5个+druid jar包1个 + 数据库驱动包

如果使用的是c3p0  jdbcTemplate ,需要导入JDBCTemplate jar包5个+c3p0 jar包2个 + 数据库驱动包

  2.创建JDBCTemplate对象。依赖于数据源DataSource

    *JdbcTemplate template = new JdbcTemplate(datasource)

  3.调用JdbcTemplate的方法来完成CRUD的操作

    *update():执行DML语句。增删改语句

    *queryForMap():查询结果将结果集封装为map集合

    *queryForList():查询结果将结果集封装为map集合

    *query():查询结果,将结果封装为JavaBean对象

    *queryForObject:查询结果,将结果封装为对象

示例代码如下:

  1.工具类JDBCUtils:

package cn.xj.datasource.utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties; public class JDBCUtils {
//定义成员变量
private static DataSource ds; static {
try {
//加载配置文件
Properties pro = new Properties();
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//获取连接池对象DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
} //获取链接
public static Connection getConnection() throws SQLException {
return ds.getConnection();
} //释放资源
public static void close(Statement stmt,Connection conn){
if (stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null){
try {
conn.close(); //归还连接
} catch (SQLException e) {
e.printStackTrace();
}
}
} public static void close(ResultSet rs,Statement stmt, Connection conn){
if (rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null){
try {
conn.close(); //归还连接
} catch (SQLException e) {
e.printStackTrace();
}
}
} //获取连接池方法
public static DataSource getDateSource(){
return ds;
} }

  2.实现类JdbcTemplate_demo

package cn.xj.datasource.jdbctemplate;

import cn.xj.datasource.utils.JDBCUtils;
import org.springframework.jdbc.core.JdbcTemplate; public class JdbcTemplate_demo {
public static void main(String[] args) {
//创建JDBCTemplate对象
JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDateSource());
//3.调用方法
String sql = "update account set balance = 5000 where id = ?";
int count = template.update(sql, 3);
System.out.println(count);
}
}

JDBCTemplate基本使用的更多相关文章

  1. JdbcTemplate+PageImpl实现多表分页查询

    一.基础实体 @MappedSuperclass public abstract class AbsIdEntity implements Serializable { private static ...

  2. Spring JdbcTemplate

    参考链接: https://my.oschina.net/u/437232/blog/279530 http://jinnianshilongnian.iteye.com/blog/1423897 J ...

  3. jdbcTemplate批量插入(添加)

    public void addSubscibe(List<PermedipUserSubscribeVo> list) { final List<PermedipUserSubscr ...

  4. 【Java EE 学习 52】【Spring学习第四天】【Spring与JDBC】【JdbcTemplate创建的三种方式】【Spring事务管理】【事务中使用dbutils则回滚失败!!!??】

    一.JDBC编程特点 静态代码+动态变量=JDBC编程. 静态代码:比如所有的数据库连接池 都实现了DataSource接口,都实现了Connection接口. 动态变量:用户名.密码.连接的数据库. ...

  5. Spring MVC篇二、使用JdbcTemplate进行数据库操作

    上一篇只是一个简单的Spring MVC框架,接下来添加一些跟数据库的交互. 一.添加jdbc相关配置   在maven中添加相关依赖后,配置数据库访问参数及数据源.数据库参数使用配置文件,代码如下: ...

  6. 使用Spring JdbcTemplate实现数据库操作

    今天我来演示 关于JDBCTemplate实现对数据库的查询和添加 首先是添加 第一步大家都知道 创建一个实体类 然后写一个方法 把实体类当参数传进去 在实现这个接口 JdbcDaoSupport这个 ...

  7. JdbcTemplate进行查询

    1.jdbcTemplate.queryForInt() 和 jdbcTemplate.queryForLong() 例如:下面使用queryForInt()方法传回user表中的记录数: jdbcT ...

  8. jdbcTemplate之jdbc模板技术

    1:为什么要使用jdbcTemplate? 在实际开发中使用jdbc技术太过复杂,为了减少代码冗余,操作简单 步骤一:创建实体类 package beans; public class Book { ...

  9. Spring JdbcTemplate 方法详解

    JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchUpdate方法:update方法用于执行新增.修 ...

  10. Spring中的JdbcTemplate使用

    1.引出SpringJDBC的概念 在学习JDBC编程时我们会感觉到JDBC的操作是多么繁琐,那么当我们学习的Hibernate框架时,我们感觉到数据库的操作也变非常简单,提高了开发效率.但是当使用H ...

随机推荐

  1. Ubuntu Linux DNS服务器 BIND9配置文件命令介绍

    BIND9配置方法 转载▼     配置语法 named.conf acl 定义访问控制列表 controls 定义rndc命令使用的控制通道,若省略,则只允许经过rndc.key认证的127.0.0 ...

  2. Python数模笔记-Sklearn(2)样本聚类分析

    1.分类的分类 分类的分类?没错,分类也有不同的种类,而且在数学建模.机器学习领域常常被混淆. 首先我们谈谈有监督学习(Supervised learning)和无监督学习(Unsupervised ...

  3. java+selenium使用JS、键盘滑动滚动条

    本篇文章介绍如何使用JS和键盘对象对页面进行滑动滚动条-------------主要针对java做自动化测试的同学 一:使用键盘对象操作滚动条 //导包 import org.openqa.selen ...

  4. Linux的基础操作

    1.概念 Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境. 2.Linux的分类 1.按市场需求分为: 图形化界面版.服务器版 2.按原生程度 ...

  5. OPC使用思路

  6. js EventSource 长链接

    有这么一个场景:服务端处理数据,响应比较慢,为了不让用户体会到网页没有反应,服务端需要把处理的每一步操作返回给前端,前端实时进行打印. 1.ajax 轮询 <script> setInte ...

  7. 普里姆(Prim)算法

    概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图(即"带权图")里搜索最小生成树.即此算法搜索到的边(Edge)子集所构成的树中,不但包括了连通图里的所有顶点(V ...

  8. ES系列(五):获取单条数据get处理过程实现

    前面讲的都是些比较大的东西,即框架层面的东西.今天咱们来个轻松点的,只讲一个点:如题,get单条记录的es查询实现. 1. get语义说明 get是用于搜索单条es的数据,是根据主键id查询数据方式. ...

  9. jekyll-admin的搭建和使用

    通过jekyll搭建好了自己的博客.写博客成为了日常,经过一段时间的摸索,发现jekyll-admin是个好东西,它是博客的后台管理系统,可以方便的管理和编写自己的博客 安装 运行命令gem inst ...

  10. 有没有一种组合字体,中文是宋体,英文是times new roman?

    有没有一种组合字体,中文是宋体,英文是times new roman? 由于日常科研工作书写需要,想问问各位大神有没有一种字体,中文是宋体,西文是times new roman,这样写论文好方便啊有没 ...