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 操作的更多相关文章

  1. spring 学习(四): spring 的 jdbcTemplate 操作

    spring 学习(四): spring 的 jdbcTemplate 操作 spring 针对 javaee 的每一层,都提供了相应的解决技术,jdbcTemplate 的主要操作在 dao 层. ...

  2. Spring的jdbcTemplate操作

    Spring的jdbcTemplate操作 dao层,使用jdbcTemplate Spring对不同的持久化层技术的支持,都进行了封装 JDBC Hibernate5.0 MyBatis JPA 相 ...

  3. Spring的jdbcTemplate操作-未完整

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

  4. Spring_day03--课程安排_基于aspectj的注解aop_Spring的jdbcTemplate操作

    Spring_day03 上节内容回顾 今天内容介绍 基于aspectj的注解aop Spring的jdbcTemplate操作 增加 修改 删除 查询 Spring配置c3p0连接池和dao使用jd ...

  5. spring学习(四)spring的jdbcTemplate(增删改查封装)

    Spring的jdbcTemplate操作 1.Spring框架一站式框架 (1)针对javaee三层,每一层都有解决技术 (2)到dao 层,使用 jdbcTemplate 2.Spring对不同的 ...

  6. Spring Boot项目中使用jdbctemplate 操作MYSQL数据库

    不废话,先来代码 pom文件: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...

  7. 20. Spring Boot 默认、自定义数据源 、配置多个数据源 jdbcTemplate操作DB

    Spring-Boot-2.0.0-M1版本将默认的数据库连接池从tomcat jdbc pool改为了hikari,这里主要研究下hikari的默认配置 0.  创建Spring Boot项目,选中 ...

  8. Spring JdbcTemplate操作小结

    Spring 提供了JdbcTemplate 来封装数据库jdbc操作细节: 包括: 数据库连接[打开/关闭] ,异常转义 ,SQL执行 ,查询结果的转换 使用模板方式封装 jdbc数据库操作-固定流 ...

  9. Spring Boot教程(二十九)使用JdbcTemplate操作数据库

    使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...

随机推荐

  1. Linux性能优化实战CPU篇之总结(四)

    一.分析CPU瓶颈 1,性能指标 a>CPU使用率 CPU使用率描述了非空闲时间占总CPU时间的百分比,根据CPU上运行任务的不同可以分为:用户CPU.系统CPU.等待I/O CPU.软中断和硬 ...

  2. .net 技术大全

    我常说C#的入门技术是委托.事件.消息.只有当你可以纯熟运用这三个技能的时候,才刚刚入门,此时C#的大门才算正式为你打开.很多人在学了一些语法编写一些项目后就觉得C#精通了,其实你们还没入门呢(对日开 ...

  3. mysql集群--基于centos7

    1 MySQL主从备份 主机:192.168.43.8 从机:192.168.43.6 条件:主机和从机都安装了mysql,开启了二进制日志 安装mysql (mysql 和 mysql-server ...

  4. 2020ICPC上海站 C. Sum of Log

    题目大意: 给定T组X,Y,对于每组X,Y,求上面式子   的值,其中  当x为真时等于1,其他情况等于0. 其中. 思路: 对X,Y一起进行数位DP,我们把每一位枚举数字的上限以及数字之前是否有前导 ...

  5. JAVA_Scanner 键盘输入

    键盘输入语句 介绍:在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取.Input.java , 需要一个 扫描器(对象), 就是 Scanner 步骤: 导入该类的所在包, java.u ...

  6. laravel7 验证器的使用

    $validator=\Validator::make($request->all(),[ 'username'=>'required', 'password'=>'required ...

  7. 拉格朗日插值法--python

    数据插补 常见插补方法 插值法--拉格朗日插值法 根据数学知识可知,对于平面上已知的n个点(无两点在一条直线上可以找到n-1次多项式 ,使次多项式曲线过这n个点. 1)求已知过n个点的n-1次多项式: ...

  8. 从读写角度,带你了解数仓的IO基本框架

    摘要:本文从读取和写入的角度分别描述了行存和列存的IO模型,并对文件结构做了简单介绍. 本文分享自华为云社区<GaussDB(DWS)基本IO框架>,作者: Naibaoofficial. ...

  9. AT2300题解

    两种做法都说一说吧... 题意很明确. 1.数论分块 对于一个 \(d\) 和给定的 \((l,r)\),\((l,r)\) 对其造成贡献的条件很明显是 \(\lfloor \frac {l-1} d ...

  10. Makefile 入门(加减乘除实现)

    Makefile 入门(加减乘除实现) 准备 使用任意Linux发行版即可,本文使用WSL Ubuntu. 开始之前,需要安装必要的工具: sudo apt install make g++ 开始 1 ...