Spring 的 jdbcTemplate 操作
1、Spring框架是一站式框架
(1)针对 JavaEE 三层,每一层都有解决技术
(2)在 dao 层,使用 jdbcTemplate
2、Spring对不同的持久化层的技术都进行了封装

(1)jdcbTemplate 对 jdbc 进行了封装
3、jdbcTemplate 使用和 dbutils (Apache公司)使用很相似,都是对数据库进行 crud 的操作
1、增加
(1)导入 jdbcTemplate 使用的 jar 包(Maven项目)————别忘了数据库驱动!!!
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.0.2.RELEASE</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.0.2.RELEASE</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.4</version>
</dependency>
(2)创建对象,设置数据库的信息
(3)创建 jdbcTemplate 对象,设置数据源
(4)调用 jdbcTemplate 对象里面的方法实现操作

2、修改

3、删除

4、查询
(1)使用 jdbcTemplate 实现查询操作——对比DButils

(2)查询具体的实现
查询返回一个值(总条数之类)
调用的是 queryForObject(String sql, Class<T> requiredType) 方法。
第一个参数是sql语句,第二个参数是返回值类型的 class 对象

查询返回对象
原始的JDBC的方式实现
// 2.jdbc实现代码
@Test
public void testJDBC() {
Connection conn = null;
PreparedStatement psmt = null;
ResultSet rs = null; try {
// 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 创建连接
conn = DriverManager.getConnection("jdbc:mysql:///lianxi", "root", "root");
// 编写sql语句
String sql = "select * from user where username=?";
// 预编译sql
psmt = conn.prepareStatement(sql);
// 设置参数值
psmt.setString(1, "jack");
// 执行sql
rs = psmt.executeQuery();
// 遍历结果集
while(rs.next()) {
// 得到返回结果值
String username = rs.getString("username");
String password = rs.getString("password");
// 放到user对象里
User user = new User();
user.setPassword(password);
user.setUsername(username);
System.out.println(user);
} } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
rs.close();
psmt.close();
conn.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
}
jdbcTemplate 中我们使用 queryForObject(String sql, RowMapper<T> rowMapper, Object... args) 方法
参数:
(1)SQL语句
(2) RowMapper 接口,类似于 DBUtils 里面 ResultSetHandler
(3)可变参数

我们自己实现RowMapper接口,并进行数据封装

查询返回 list 集合
我们使用 jdbcTemplate 中的 query(String sql, RowMapper<T> rowMapper, Object... args) 方法
参数:
(1)sql语句
(2)RowMapper接口,自己写类实现数据封装(我们还可以用上面自己实现的MyRowMapper)
(3)可变参数(在这里我们sql语句中没有占位符,所以我们可变参数可以不传)

Spring 的 jdbcTemplate 操作的更多相关文章
- spring 学习(四): spring 的 jdbcTemplate 操作
spring 学习(四): spring 的 jdbcTemplate 操作 spring 针对 javaee 的每一层,都提供了相应的解决技术,jdbcTemplate 的主要操作在 dao 层. ...
- Spring的jdbcTemplate操作
Spring的jdbcTemplate操作 dao层,使用jdbcTemplate Spring对不同的持久化层技术的支持,都进行了封装 JDBC Hibernate5.0 MyBatis JPA 相 ...
- Spring的jdbcTemplate操作-未完整
1 spring框架一站式框架(1)针对javaee三层,每一层都有解决技术(2)在dao层,使用 jdbcTemplate 2 spring对不同的持久化层技术都进行封装
- Spring_day03--课程安排_基于aspectj的注解aop_Spring的jdbcTemplate操作
Spring_day03 上节内容回顾 今天内容介绍 基于aspectj的注解aop Spring的jdbcTemplate操作 增加 修改 删除 查询 Spring配置c3p0连接池和dao使用jd ...
- spring学习(四)spring的jdbcTemplate(增删改查封装)
Spring的jdbcTemplate操作 1.Spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 (2)到dao 层,使用 jdbcTemplate 2.Spring对不同的 ...
- Spring Boot项目中使用jdbctemplate 操作MYSQL数据库
不废话,先来代码 pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...
- 20. Spring Boot 默认、自定义数据源 、配置多个数据源 jdbcTemplate操作DB
Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置 0. 创建Spring Boot项目,选中 ...
- Spring JdbcTemplate操作小结
Spring 提供了JdbcTemplate 来封装数据库jdbc操作细节: 包括: 数据库连接[打开/关闭] ,异常转义 ,SQL执行 ,查询结果的转换 使用模板方式封装 jdbc数据库操作-固定流 ...
- Spring Boot教程(二十九)使用JdbcTemplate操作数据库
使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...
随机推荐
- 生产环境想要对某个Pod排错、数据恢复、故障复盘有什么办法?
生产环境想要对某个Pod排错.数据恢复.故障复盘有什么办法? k8s考点灵魂拷问9连击之5 考点之简单描述一下k8s副本集ReplicaSet有什么作用? 考点之为什么ReplicaSet将取代Rep ...
- 【windows 操作系统】并发
并发 在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行.其中两种并发关系分别是同步和互斥 微观角度 所有的并发处理都有排队等候,唤醒,执行等 ...
- .大内高手专栏: NET中间语言(IL)
补充知识点:opcode 在前面我们已经知道了,由于计算机只认识0和1,所以,源代码"NOP"是无法直接运行的.当Assembler遇到"NOP"的时候,为了生 ...
- yalmip安装
1,将yalmip解压,在matlab中添加路径. 2,yalmiptest测试是否安装成功.
- VUE3 之 使用标签实现动画与过渡效果 - 这个系列的教程通俗易懂,适合新手
1. 概述 巴纳姆效应告诉我们: 人们更容易相信笼统的.常见的人格描述,并觉得特别适合自己,认为该描述真实地反映了自己的人格面貌. 这也是所有算命先生的小把戏,算命先生通常把话说的很笼统,很通用,基本 ...
- ssh执行命令或者脚本里最好先加上 source /etc/profile
记: 写一次shell脚本,发现总提示 找不到JAVA_HOME .明明已经配了环境变量,并且java -version也已经能输出信息,但就是提示. 后来在 脚本中加入第一句代码 source /e ...
- sprintf的用法总结
大概知道sprintf的用法,今天在CSDN上看到一篇关于sprintf比较好的总结,现在抄下来,emmmmmmm....... srpintf()函数的功能非常强大:效率比一些字符串操作函数要高:而 ...
- (六)React Ant Design Pro + .Net5 WebApi:后端环境搭建-EF Core
一. 简介 EFCore 是轻量化.可扩展.开源和跨平台版的常用数据访问技术,走你(官方文档) 二. 使用 1.安装数据库驱动包.PMC 工具包 不同的数据库有不同的包,参考,我用 PostgreSQ ...
- 七牛云cdn加速
https://developer.qiniu.com/fusion/1228/fusion-quick-start https://blog.csdn.net/qq_27292113/article ...
- 手写 Vue 系列 之 从 Vue1 升级到 Vue2
前言 上一篇文章 手写 Vue 系列 之 Vue1.x 带大家从零开始实现了 Vue1 的核心原理,包括如下功能: 数据响应式拦截 普通对象 数组 数据响应式更新 依赖收集 Dep Watcher 编 ...