JdbcTemplate(概念)

1、Spring框架对JDBC进行了封装,使用JdbcTemplate方便实现对数据库的操作

2、JdbcTemplate操作实现
(1)引入jar包

(2)在Spring配置文件中配置数据库连接池

<!-- 数据库连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"destroy-method="close"><property name="url" value="jdbc:mysql:///user_db" /><property name="username" value="root" /><property name="password" value="lyy751227" /><property name="driverClassName" value="com.mysql.jdbc.Driver" /></bean>

(3)配置JdbcTemplate对象,注入dataSource

  <!-- JdbcTemplate对象 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!-- 注入dataSource --><property name="dataSource" ref="dataSource"></property></bean>

(4)创建service类,创建dao类,在dao注入jdbcTemplate对象
开启组件扫描

    <!-- 开启组件扫描 --><context:component-scan base-package="com.lyy"></context:component-scan>

使用注解创建BookService 类对象,并注入bookDao属性

@Service
public class BookService {//注入dao@Autowiredprivate BookDao bookDao;
}

使用注解创建BookDaoImpl 类对象,并注入jdbcTemplate属性

@Repository
public class BookDaoImpl implements BookDao{//注入jdbcTemplate@Autowiredprivate JdbcTemplate jdbcTemplate;
}

JdbcTemplate操作数据库(添加操作)

1、对应数据库创建实体类,userid、username、ustatus对应表格中的三个可变参数

public class User {private String userid;private String username;private String ustatus;public String getUserid() {return userid;}public void setUserid(String userid) {this.userid = userid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUstatus() {return ustatus;}public void setUstatus(String ustatus) {this.ustatus = ustatus;}
}

2、编写service和dao
(1)在dao类中进行数据库添加操作
(2)调用JdbcTemplate对象里的update方法实现添加操作
两个参数:第一个参数是sql语句;第二个参数是一个可变参数,设置sql语句值

测试类

public class testBook {@Testpublic void testadd(){//读取配置文件ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");//得到对象BookService bookService = context.getBean("bookService", BookService.class);Book book = new Book();book.setUserid("1");book.setUsername("java");book.setUstatus("a");bookService.addBook(book);}
}

JdbcTemplate实现对数据库的增加修改和删除操作

第一步配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 开启组件扫描 --><context:component-scan base-package="com.lyy"></context:component-scan><!-- 数据库连接池 --><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"destroy-method="close"><property name="url" value="jdbc:mysql:///user_db" /><property name="username" value="root" /><property name="password" value="lyy751227" /><property name="driverClassName" value="com.mysql.jdbc.Driver" /></bean><!-- JdbcTemplate对象 --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><!-- 注入dataSource --><property name="dataSource" ref="dataSource"></property></bean></beans>

第二步,创建数据库对应的实体类

public class Book {private String userid;private String username;private String ustatus;public String getUserid() {return userid;}public void setUserid(String userid) {this.userid = userid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUstatus() {return ustatus;}public void setUstatus(String ustatus) {this.ustatus = ustatus;}
}

第三部创建接口,并实现接口方法
接口:

public interface BookDao {//添加方法void add(Book book);//修改方法void update(Book book);//删除方法void delete(String id);
}

接口方法实现:

@Repository
public class BookDaoImpl implements BookDao{//注入jdbcTemplate@Autowiredprivate JdbcTemplate jdbcTemplate;//添加的方法@Overridepublic void add(Book book) {//1、创建sql语句String sql = "insert into t_book values(?,?,?)";//2、调用方法实现Object[] args = {book.getUserid(), book.getUsername(), book.getUstatus()};int update = jdbcTemplate.update(sql,args);System.out.println(update);}//修改方法@Overridepublic void update(Book book) {String sql = "update t_book set username=?,ustatus=? where userid=?";Object[] args = {book.getUsername(),book.getUstatus(),book.getUserid()};int update = jdbcTemplate.update(sql,args);System.out.println(update);}//删除的方法@Overridepublic void delete(String id) {String sql = "delete from t_book where userid=?";int update = jdbcTemplate.update(sql,id);System.out.println(update);}}

创建BookService类

@Service
public class BookService {//注入dao@Autowiredprivate BookDao bookDao;//添加的方法public void addBook(Book book) {bookDao.add(book);}//修改的方法public void updateBook(Book book){bookDao.update(book);}//删除的方法public void deleteBook(String id){bookDao.delete(id);}}

最后进行测试:

public class testBook {@Testpublic void testadd(){//读取配置文件ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");//得到对象BookService bookService = context.getBean("bookService", BookService.class);Book book = new Book();book.setUserid("1");book.setUsername("java");book.setUstatus("a");bookService.addBook(book);}//修改@Testpublic void testupdate(){ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");//得到对象BookService bookService = context.getBean("bookService", BookService.class);Book book = new Book();book.setUserid("1");book.setUsername("javaupup");book.setUstatus("lyy");bookService.updateBook(book);}//删除@Testpublic void testdelete(){ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");//得到对象BookService bookService = context.getBean("bookService", BookService.class);bookService.deleteBook("1");}
}

JdbcTemplate操作数据库(查询操作)

查询返回某个值

1、查询表里面有多少条记录,返回某个值
使用jdbcTemplate.queryForObject(sql,Integer.class)方法进行查询,方法中有两个参数:第一个参数是sql语句;第二个参数是返回类型的Class

//查询表中记录数@Overridepublic int selectCount() {String sql = "select count(*) from t_book";Integer count = jdbcTemplate.queryForObject(sql, Integer.class);return count;}

查询返回对象

实现查询返回对象

    @Overridepublic Book findBookInfo(String id) {String sql = "select * from t_book where userid=?";Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);return book;}

查询返回集合

调用JdbcTemplate类中方法实现查询返回集合(如图书列表分页)

    @Overridepublic List<Book> findAllBook() {String sql = "select * from t_book";List<Book> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));return query;}

JdbcTemplate操作数据库(批量操作)

JdbcTemplate类中的batchUpdate方法实现批量操作
两个参数:第一个参数为sql语句,第二次参数为list集合,表示添加多条记录的数据

批量添加操作

    @Overridepublic void batchAddBook(List<Object[]> batchArgs) {String sql = "insert into t_book values(?,?,?)";int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);System.out.println(Arrays.toString(ints));}

测试类:

 @Test//批量添加public void testbatchadd(){ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");//得到对象BookService bookService = context.getBean("bookService", BookService.class);//创建批量添加的数据List<Object[]> batchArgs = new ArrayList<>();Object[] o1 = {"3","web","a"};Object[] o2 = {"4","c","b"};Object[] o3 = {"5","php","c"};batchArgs.add(o1);batchArgs.add(o2);batchArgs.add(o3);bookService.batchAdd(batchArgs);}

批量修改操作

    //批量修改@Overridepublic void batchUpdateBook(List<Object[]> batchArgs) {String sql = "update t_book set username=?,ustatus=? where userid=?";int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);System.out.println(ints);}

批量删除操作

@Overridepublic void batchDeleteBook(List<Object[]> id) {String sql = "delete from t_book where userid=?";int[] ints = jdbcTemplate.batchUpdate(sql, id);System.out.println(ints);}

Spring5学习笔记------4、JdbcTemplate相关推荐

  1. Spring5学习笔记3

    Spring5学习笔记3 1. 创建实体类 2.创建Spring容器xml文件. 3.在test/java文件夹内创建MyTest.class进行测试 用idea初学Spring5于哔哩哔哩狂神说ja ...

  2. Spring5学习笔记1

    Spring5学习笔记1 目录 Spring5学习笔记1 1. 新建项目Maven(我的项目名为spring-study) 2. 修改项目的pom.xml,添加依赖 3. 在该项目中建立Module, ...

  3. Spring5学习笔记------5、事务操作

    事务操作 事务是数据库操作的最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作则都失败 事务的四大特性: 原子性( A ): 事务是最小的工作单元,不可再分,事务中的操作要么都发生,要么都 ...

  4. mysql 使用jdbctemplate_SpringBoot学习笔记-使用jdbcTemplate访问mysql

    配置maven依赖 使用jdbcTemplate访问jdbc,需要在pom中添加mysql和spring-boot-start-jdbc依赖 mysql mysql-connector-java or ...

  5. Spring5学习笔记二

    一. IOC概念及原理 1.IOC是什么 控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理 使用 IOC 目的:为了耦合度降低 2.IOC 底层原理 xml 解析.工厂模式.反射 ...

  6. Spring5学习笔记——day03

    文章目录 Spring 6.依赖注入 6.1 构造器注入 6.2 Set 注入 (重点) 6.3 拓展方式注入 6.4 Bean的作用域 6.4.1 Singleton(单例) 6.4.2 Proto ...

  7. SSH学习笔记(9)__Spring5_概述/简单程序/整合日志

    Spring5学习笔记 本文章基于B站UP主 孙帅suns 的视频教程<孙哥说Spring5>进行整理记录,本文章仅用于个人学习/交流使用. 参考博客:https://blog.csdn. ...

  8. Spring5学习详细笔记

    学习链接 Spring5学习详细笔记 Spring学习总结 - 工厂 第一章 :引言 1. 什么是spring 2. 设计模式 3. 工厂设计模式 3.1 什么是工厂设计模式 3.2 简单工厂的设计 ...

  9. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

最新文章

  1. 解决Eclipse 启动后总是Building WorkSpace(sleeping)
  2. java创建node类型数据类型_[Java教程]js DOM Node类型
  3. CSS设置七彩的下拉菜单
  4. 【数据集】自动驾驶都有什么测试基准?
  5. RDL(C) Report Design Step by Step 1: DrillThrough Report
  6. Linux SElinux
  7. HDU 2176:取(m堆)石子游戏(Nim博弈)
  8. Postman安装失败,解决方法
  9. net use 命令使用
  10. 数学建模--偏最小二乘法
  11. 水倒七分、茶倒八分、酒倒满
  12. 发票信息批量提取到 excel 软件 4.0
  13. 论文解读二代GCN《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》
  14. python的运行过程_python执行流程
  15. 【StringUtils】
  16. 阿里云服务器选择不同地域有什么区别
  17. 【Eigen】【Eigen实践】【Eigen的使用学习记录】
  18. K_A08_013 基于 STM32等单片机驱动大功率MOS管模块按键控制直流电机加减速启停
  19. React学习笔记二:实现一个数字时钟
  20. 在ipv4的网络上使用utorrent3.0下…

热门文章

  1. ISIS与OSPF区别
  2. 物联网案例_讨论物联网采用的商业案例
  3. 前端实现导入PPT在线编辑
  4. linux yum安装svn版本号,CentOS7 yum安装svn服务
  5. Device disconnected
  6. Telegram APIs中文介绍
  7. 深入探究知道创宇主动防御体系:云蜜罐因何诞生?
  8. elementUI重难点
  9. 2020机修钳工(中级)模拟考试及机修钳工(中级)作业模拟考试
  10. 【Flink】Flink 消费 kafka retries和retry.backoff.ms 引起问题