JDBCTemplate初学简介
JDBCTemplate
JdbcTemplate是Spring的一部分,是对数据库的操作在jdbc的封装,处理了资源的建立和释放(不需要我们管理连接了),我们只需要提供SQL语句(不需要我们设置参数了)和提取结果(查询时候可以直接返回对应的实体类),使JDBC更加易于使用。
JdbcTemplate使用spring的注入功能,把DataSource注册到JdbcTemplate之中。- DataSource是JDBC2.0 提供了javax.sql.DataSource接口,它负责建立与数据库的连接,当在应用程序中访问数据库时不必编写连接数据库的代码,直接引用DataSource获取数据库的连接对象即可。用于获取操作数据Connection对象。
除了JDBC外都有DataSource对象。
DataSource可以看作数据源,它封装了数据库参数,连接数据库,程序中操作DataSource对象即可对数据库进行增删改查操作。
不同方式中使用的DataSource对象不同。列举如下:
1,DBCP框架
dbcp框架中的DataSource类是:org.apache.commons.dbcp.BasicDataSource
这是commons-dbcp.jar包中的类。
2,C3P0框架
c3p0框架的DataSource类是:com.mchange.v2.c3p0.ComboPooledDataSource
这是c3p0.jar包中的类。
3,MyBatis框架
MyBatis框架的DataSource类是:org.apache.ibatis.datasource.pooled.PooledDataSource
这是mybatis.jar包中的类。
- jdbcTemplate的方法使用
update:执行增删改操作
JdbcTemplate jdbcTemplate = new JdbcTemplate(unitl.getDataSource());
String sql6 = "update emp set ename='sb' where ename=?";
int update = jdbcTemplate.update(sql6,"庞统");
System.out.println(update);
queryForMap查询结果集长度只能为1的map集合,值为value,列名为key
String sql = "select * from emp where ename =?";
Map<String, Object> stringObjectMap = jdbcTemplate.queryForMap(sql,"关羽");
System.out.println(stringObjectMap);
queryForList将查询到的结果集放到list集合中,一条数据是一条map集合
String sql2 = "select * from emp";
List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql2);
System.out.println(maps);
queryForObject查询结果封装为对象,一般是用于聚集函数
String sql7 = "select count(*) from emp";
Integer integer = jdbcTemplate.queryForObject(sql7, Integer.class);
System.out.println(integer);
query查询结果封装为javabean对象。query的参数:rowMapper。一般使用BeanPropertyRowMapper完成自动封装
List<Emp> emp = jdbcTemplate.query(sql2, new BeanPropertyRowMapper<Emp>(Emp.class));
System.out.println(emp);
数据库连接池的使用:c3p0,需要相应的jar包和c3p0-config.xml文件
DataSource comboPooledDataSource = new ComboPooledDataSource();
for (int i = 0; i < 10; i++) {
Connection connection = comboPooledDataSource.getConnection();
System.out.println(connection);
}
数据库连接池的使用:druid,需要相应的jar包和druid.properties文件
Properties properties = new Properties();
try {
resource= unitl.class.getClassLoader().getResource("druid.properties").toURI();
}catch (URISyntaxException e){
e.printStackTrace();
}
try {
properties.load(new FileInputStream(new File(resource)));
}catch (IOException e){
e.printStackTrace();
}
try {
dataSource = DruidDataSourceFactory.createDataSource(properties);
}catch (Exception e){
e.printStackTrace();
}
Connection con = dataSource.getConnection();
JDBCTemplate初学简介的更多相关文章
- Spring JdbcTemplate详解
为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架. 作为 SpringJDBC 框架的核心, JDBC 模板的设计目的是为不同类型的 ...
- Spring 梳理-JdbcTemplate简介
JdbcTemplate简介 Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中. JdbcTempla ...
- 初学Nutch之简介与安装
1.Nutch简介 Nutch是一个由Java实 现的,开放源代码(open-source)的web搜索引擎.主要用于收集网页数据,然后对其进行分析,建立索引,以提供相应的接口来对其网页数据进行 查询 ...
- Spring初学之使用JdbcTemplate
Spring中使用JdbcTemplate.JdbcDaoSupport和NamedParameterJdbcTemplate来操作数据库,但是JdbcTemplate最常用,最易用. jdbc.pr ...
- SpringBoot初学(4)– JdbcTemplate和Mybatis
前言 github: https://github.com/vergilyn/SpringBootDemo 代码位置: 一.Spring Boot集成JdbcTemplate或NamedParamet ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring JDBCTemplate简介
Spring 框架针对数据库开发中的应用提供了 JDBCTemplate 类,该类是 Spring 对 JDBC 支持的核心,它提供了所有对数据库操作功能的支持. Spring 框架提供的JDBC支持 ...
- 初学python-字符串中引号的使用、input简介、强制类型转换、加减乘除简写、条件判断
一.字符串中单引号和双引号的使用: 1.字符串以英文单引号' '引用.eg:'Hello World' 2.若字符串中含有单引号,则以英文双引号" "引用.eg:"I'm ...
- [原创]java WEB学习笔记109:Spring学习---spring对JDBC的支持:使用 JdbcTemplate 查询数据库,简化 JDBC 模板查询,在 JDBC 模板中使用具名参数两种实现
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 初学Spring有没有适合的书
初学者之前没有阅读java框架源码的习惯.没有阅读过源码,知道整体流程么?知道依赖注入的概念么?知道aop么?知道其中用到了哪些设计模式么?再说了,如果一上手就是源码?难道你没有注意到Spring的类 ...
随机推荐
- HTML 图片(image) 左右滑动
1.需求 需要用简单动画的形式将一组图片进行展示,图片数量不固定 2.效果如下: 3.思路 说到动画,首先想到使用-webkit-transition:;因为这个最简单好用,首先将图片都放在左侧,然后 ...
- cogs 49. 跳马问题 DFS dp
49. 跳马问题 ★ 输入文件:horse.in 输出文件:horse.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 有一只中国象棋中的 “ 马 ” ,在半张 ...
- 【LC_Lesson3】---回文数的判别
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- 关于neo4j初入门(3)
这一章主要是函数的部分 UPPER 它需要一个字符串作为输入并转换为大写字母. UPPER (<input-string>)<input-string>可以是来自Neo4J数据 ...
- Xcode10:library not found for -lstdc++.6.0.9 临时解决
1.https://pan.baidu.com/s/1IkbZb6qaxgvghP1HEFQa6w?errno=0&errmsg=Auth%20Login%20Sucess&& ...
- Scala 学习(4)之「类——基本概念2」
目录 内部类 extends override和super override field isInstanceOf和asInstanceOf getClass和classOf 内部类 import s ...
- 利用Springmvc的AbstractXlsxView下载Excel文件
设计一个模型,在针对多中数据类型进行拓展 public abstract class ExcelView extends AbstractXlsxView { public CellStyle cel ...
- [bzoj1070] [洛谷P2053] [SCOI2007] 修车
Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同 的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序, ...
- java小心机(2)| 重载和构造器的小细节
每天进步一点点,距离大腿又近一步! 阅读本文大概需要10分钟 java小心机,为你诉说java鲜为人知的一面 涉及基本数据类型的重载 基本类型能从一个"较小"的类型自动提升到&qu ...
- 使用eNSP配置QinQ
参考链接:https://blog.csdn.net/alone_map/article/details/52217094 本文主要记录使用华为eNSP模拟器来实现配置QinQ,并对QinQ的报文进行 ...