Spring学习 | JDBCTemplate
创始人
2024-03-28 19:09:08

文章目录

  • 一、简介
  • 二、实现CRUD
    • 2.1 增删改操作
    • 2.2 查询操作


学习视频🎥:https://www.bilibili.com/video/BV1Vf4y127N5

一、简介

💬概述:JDBCTemplate是Spring 对JDBC进行封装的一个模板

🔑作用:简化JDBC的使用,更加方便地对数据库进行操作

🔑使用步骤

① 导入相关jar 包:druid…jar、mysql-connector-java-…jar、spring-jdbc-…jar、spring-tx-…jar、(spring-orm-…jar)

② 在spring 配置文件中配置druid数据库连接池,这里使用引入外部属性文件的方式(需要先引入context名称空间),也可以直接把值写上





③ 在spring 配置文件中创建JdbcTemplate 对象,并注入dataSource属性(jdbcTemplate中一个属性)



💡 标签中的ref属性值为连接池的唯一标识id

④ 创建配置类,开启组件扫描(或者在spring 配置文件配置)

@Configuration
@ComponentScan(basePackages = {"com.Key"})
public class SpringConfig {// code...
}

⑤ 分别创建service层和dao层的实现类,在service层中添加dao类的成员变量,在dao层中添加jdbcTemplate成员变量,并使用注解方式创建对象和注入属性

  • UserServiceImpl

    @Service("uService")
    public class UserServiceImpl implements UserService {// 添加dao 层成员变量@Autowriedprivate UserDao userDao;// code...
    }
    
  • UserDaoImpl

    @Repository("uDao")
    public class UserDaoImpl implements UserDao {// 添加jdbcTemplate 成员变量@Autowriedprivate JdbcTemplate jt;// code...
    }
    

二、实现CRUD

2.1 增删改操作

💡 增删改操作都是类似的,只需改变SQL语句,这里只演示增加操作

① 创建带占位符的SQL语句字符串

String sql = "insert into user values(null,?,?)";

② 创建对象数组Object[],Object[]中的元素值对应SQL语句中每一个占位符

// 假设数据库表对象的实体类为User(外部传进来)
Object[] args = {user.getName(), user.getAge()};

③ 调用jdbcTemplate的方法——update()

jt.update(sql, args);

❓ 方法中的两个参数

  1. SQL字符串
  2. 对象数组,该参数是可变参数,即对象数组的长度是可变的,因为占位符的数量不确定

2.2 查询操作

🔑 查询返回值为普通类型

① 创建SQL语句字符串

String sql = "select count(*) from user";

② 调用jdbcTemplate的方法——queryForObject()

jt.queryForObject(sql, Integer.class);

❓ 方法中两个参数

  1. SQL字符串
  2. 返回值的class 对象,如返回值为int型,则该参数为Integer.class

🔑查询返回值为对象类型

① 创建SQL语句

String sql = "select * from user where id = ?";

② 调用jdbcTemplate的方法——queryForObject()

User u = jt.queryForObject(sql, new BeanPropertyRowMapper(User.class), id);

❓ 方法中三个参数

  1. SQL字符串
  2. RowMapper接口对象(泛型T 表示返回对象类型),使用中采用其实现类BeanPropertyRowMapper代替即可,用于将查询到的数据封装到对象中并返回。创建实现类对象时,需要传入返回对象类型的class对象
  3. 可变参数,即占位符对应的对象数组

🔑查询返回值为集合类型

① 创建SQL语句

String sql = "select * from user";

② 调用jdbcTemplate的方法——query()

List uList = jt.query(sql, new BeanPropertyRowMapper(User.class));

❓ 方法中三个参数

  1. SQL字符串
  2. RowMapper接口对象,与queryForObject()中的第二个参数一样
  3. 可变参数,即占位符对应的对象数组

🔑批量操作

💡 批量添加、删除和修改操作都是类似的,这里只演示添加

① 创建SQL语句(就是简单的添加语句)

String sql = "insert into user value(null, ?, ?)";

② 调用jdbcTemplate 的方法——batchUpdate()

// 外部传入的List集合——batchA
jt.batchUpdate(sql, batchArgs);

❓ 方法中两个参数

  1. SQL字符串
  2. batchArgs——List集合,集合元素为对象数组,每一个对象数组(集合元素)表示一组添加数据,数组中的各个元素对应SQL语句中的占位符

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...