关键词:
JdbcTemplate 操作数据库(增删改)
JdbcTemplate的增、删、改操作
均由JdbcTemplate 的 update 方法实现
该方法有两个参数:
1、sql(操作对应的sql语句)
2、 Object[ ] args (sql语句中对应的参数组成的数组)
一、准备工作
(1)在MySQL数据库中创建book表,其中有三列,分别对应bookid,bookname,bookstatus。
(2)创建如下项目结构
dao包:
//1.创建接口
public interface bookDao
//添加操作的抽象方法
void add(book book);
//删除操作抽象方法
void delete(String id);
//更新操作抽象方法
void update(book book);
//2.创建接口实现类(其中写增删查操作的具体代码)
@Repository
public class bookDaoImple implements bookDao
//(1)注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
//(2)重写接口里的添加方法
@Override
public void add(book book)
//(3)重写接口里的删除方法
@Override
public void delete(String id)
//(4)重写接口里的更新方法
@Override
public void update(book book)
entity包:
//1.创建book类
@Component
public class book
//三个属性分别对应数据库中三个表头
private String bookid;
private String bookname;
private String bookstatus;
public void setBookid(String bookid)
this.bookid = bookid;
public void setBookname(String bookname)
this.bookname = bookname;
public void setBookstatus(String bookstatus)
this.bookstatus = bookstatus;
public String getBookid()
return bookid;
public String getBookname()
return bookname;
public String getBookstatus()
return bookstatus;
service包:
//编写bookService类
@Service
public class bookService
//1.注入dao
@Autowired
private bookDao bookdao;
//2.添加的方法
public void addbook(book book)
bookdao.add(book);
//3.删除的方法
public void deletebook(String id)
bookdao.delete(id);
//4.更新方法
public void updatebook(book book)
bookdao.update(book);
Spring配置文件: bean1.xml
<?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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--上方引入context名称空间-->
<!--1.开启组件扫描-->
<context:component-scan base-package="jdbcDemo1"></context:component-scan>
<!--2.创建德鲁伊连接池对象-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="jdbc:mysql://localhost:3306/wangqihao" />
<property name="username" value="root" />
<property name="password" value="root" />
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
</bean>
<!--3.创建jdbcTemplate对象,并注入连接池对象-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
二、JdbcTemplate—增加操作(add)
(1)在bookDaoImple实现类
中实现接口中的add方法
@Repository
public class bookDaoImple implements bookDao
//注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
//重写接口里的添加方法
@Override
public void add(book book)
String sql = "insert into book values(?,?,?)";
//注意:args里元素的顺序要和sql里参数的出现顺序相同!!
Object[] args = book.getBookid(),book.getBookname(),book.getBookstatus();
//通过jdbcTemplate.update()实现
int update = jdbcTemplate.update(sql, args);
System.out.println("add成功了:"+update+"条");
//重写接口里的删除方法
@Override
public void delete(String id)
//重写接口里的更新方法
@Override
public void update(book book)
(2)编写测试类testBook
public class testBook
public static void main(String[] args)
ApplicationContext context = new ClassPathXmlApplicationContext("jdbcDemo1/bean1.xml");
//创建业务层bookService类的对象
bookService bookservice = context.getBean("bookService", bookService.class);
//创建book类对象(便于通过set方法设置属性值)
book books = new book();
//1.添加操作
books.setBookid("3");
books.setBookname("C开发指南");
books.setBookstatus("售出");
bookservice.addbook(books);
运行结果:
添加后的book表:
三、JdbcTemplate—删除操作(delete)
(1)在bookDaoImple实现类
中实现接口中的delete方法
@Repository
public class bookDaoImple implements bookDao
//注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
//重写接口里的添加方法
@Override
public void add(book book)
//重写接口里的删除方法
@Override
public void delete(String id)
String sql = "delete from book where bookid=?";
//通过jdbcTemplate.update()实现
int update = jdbcTemplate.update(sql, id);
System.out.println("delete成功了:"+update+"条");
//重写接口里的更新方法
@Override
public void update(book book)
(2)编写测试类testBook
public class testBook
public static void main(String[] args)
ApplicationContext context = new ClassPathXmlApplicationContext("jdbcDemo1/bean1.xml");
bookService bookservice = context.getBean("bookService", bookService.class);
book books = new book();
//2.删除操作
bookservice.deletebook("3");
运行结果:
删除后的book表:
四、JdbcTemplate—更新操作(update)
(1)在bookDaoImple实现类
中实现接口中的update方法
@Repository
public class bookDaoImple implements bookDao
//注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
//重写接口里的添加方法
@Override
public void add(book book)
//重写接口里的删除方法
@Override
public void delete(String id)
//重写接口里的更新方法
@Override
public void update(book book)
String sql = "update book set bookname=?,bookstatus=? where bookid=?";
//注意:args里元素的顺序要和sql里参数的出现顺序相同!!
Object[] args = book.getBookname(),book.getBookstatus(),book.getBookid();
int update = jdbcTemplate.update(sql, args);
System.out.println("update成功了:"+update+"条");
(2)编写测试类testBook
public class testBook
public static void main(String[] args)
ApplicationContext context = new ClassPathXmlApplicationContext("jdbcDemo1/bean1.xml");
bookService bookservice = context.getBean("bookService", bookService.class);
book books = new book();
//3.更新操作
books.setBookid("1");
books.setBookname("哈哈指南");
books.setBookstatus("未售出");
bookservice.updatebook(books);
运行结果:
更新后的book表:
spring5学习笔记(代码片段)
文章目录Spring5学习笔记1.简介1.1介绍1.2发展历程1.3理念1.4优点1.4组成1.4.1SpringCore1.4.2SpringContext1.4.3SpringAOP1.4.4SpringDAO1.4.5SpringORM1.4.6SpringWeb1.4.7SpringWebMVC1.5扩展2.控制反转2.1原型2.1.1`UserDao`2.1.2` 查看详情
spring5学习笔记(代码片段)
文章目录Spring5学习笔记1.简介1.1介绍1.2发展历程1.3理念1.4优点1.4组成1.4.1SpringCore1.4.2SpringContext1.4.3SpringAOP1.4.4SpringDAO1.4.5SpringORM1.4.6SpringWeb1.4.7SpringWebMVC1.5扩展2.控制反转2.1原型2.1.1`UserDao`2.1.2` 查看详情
spring5学习笔记(14)—“spring5声明式事务管理”(代码片段)
Spring5声明式事务管理一、事务操作1.事务概念2.搭建事务环境二、Spring事务管理介绍三、声明式事务管理(基于注解)四、声明式事务管理(参数配置)propagation:事务传播行为ioslation:事务隔离级别timeout&... 查看详情
spring5学习笔记(14)—“spring5声明式事务管理”(代码片段)
Spring5声明式事务管理一、事务操作1.事务概念2.搭建事务环境二、Spring事务管理介绍三、声明式事务管理(基于注解)四、声明式事务管理(参数配置)propagation:事务传播行为ioslation:事务隔离级别timeout&... 查看详情
spring5学习笔记—“java项目引入spring5(idea)”
Spring5入门小Demo环境:IDEA2021.1,java8,JDK1.81.先在idea中创建一个java项目2.创建成功后,右击项目名称,点击“添加框架支持…”勾选Spring,点击确定正在下载…3.创建Spring配置文件(src中又创建了两个类... 查看详情
spring5学习笔记—“springioc(控制反转)”(代码片段)
SpringIOC(控制反转)一、Spring—IOC概述1.什么是IOC2.IOC底层3.Spring提供的IOC容器实现的两种方式(两个接口)二、IOC操作Bean管理(两种方法)1.什么是bean管理2.bean管理操作的两种方式3.IOC操作bean管理(... 查看详情
spring5学习笔记—“bean的作用域”(代码片段)
目前SpringBean的作用域/范围主要有五种:(常用:singleton,prototype)在Spring里面,默认情况下,bean是单实例对象;我们在Spring配置文件中使用bean标签创建对象时,可以使用scope属性来设置bean的作用域... 查看详情
spring5学习笔记—“工厂bean(factorybean)”(代码片段)
IOC操作Bean管理(FactoryBean)Spring有两种类型bean,一种普通bean,另外一种工厂bean:普通bean:在配置文件中定义bean类型就是返回类型工厂bean:在配置文件定义bean类型可以和返回类型不一样实例演示:1.创... 查看详情
spring5学习笔记—“aop操作—aspectj注解”(代码片段)
AOP相关操作:Spring框架一般都是基于AspectJ实现AOP操作,AspectJ不是Spring组成部分,独立AOP框架,一般把AspectJ和Spirng框架一起使用,进行AOP操作。(2)基于AspectJ实现AOP操作:基于xml配置文件实现基于... 查看详情
spring5学习笔记—“aop操作—aspectj注解”(代码片段)
AOP相关操作:Spring框架一般都是基于AspectJ实现AOP操作,AspectJ不是Spring组成部分,独立AOP框架,一般把AspectJ和Spirng框架一起使用,进行AOP操作。(2)基于AspectJ实现AOP操作:基于xml配置文件实现基于... 查看详情
spring5学习笔记—“springaop的概念相关术语”(代码片段)
SpringAOP(面向切面编程)1、AOP基本概念(1)AOP—"面向切面编程",利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的... 查看详情
spring5学习笔记—“springaop的概念相关术语”(代码片段)
SpringAOP(面向切面编程)1、AOP基本概念(1)AOP—"面向切面编程",利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的... 查看详情
spring5学习笔记—“springaop底层原理(动态代理)”(代码片段)
SpringAOP底层原理(动态代理)一、AOP底层使用“动态代理”动态代理有两种情况第一种:有接口情况,使用JDK动态代理第二种:无接口情况,使用CGLIB动态代理动态代理即为创建(被增强类/实现类的... 查看详情
spring5学习笔记—“springaop底层原理(动态代理)”(代码片段)
SpringAOP底层原理(动态代理)一、AOP底层使用“动态代理”动态代理有两种情况第一种:有接口情况,使用JDK动态代理第二种:无接口情况,使用CGLIB动态代理动态代理即为创建(被增强类/实现类的... 查看详情
spring5学习笔记(代码片段)
文章目录Spring5学习笔记1.简介1.1介绍1.2发展历程1.3理念1.4优点1.4组成1.4.1SpringCore1.4.2SpringContext1.4.3SpringAOP1.4.4SpringDAO1.4.5SpringORM1.4.6SpringWeb1.4.7SpringWebMVC1.5扩展2.控制反转2.1原型2.1.1`UserDao`2.1.2`UserDaoMysqlImpl`2.1.3`UserDaoOr... 查看详情
spring5学习笔记—“ioc操作bean管理(基于xml)”(代码片段)
IOC操作Bean管理1.什么是bean管理2.bean管理操作的两种方式3.IOC操作bean管理(基于xml)3.1基于xml创建对象3.2基于xml注入属性(1)使用`set方法`注入(2)使用`有参构造`注入(3)`P名称空... 查看详情
spring5学习笔记—“ioc操作bean管理(基于注解)”(代码片段)
IOC操作Bean管理(基于注解方式)一、什么是注解(1)注解是代码特殊标记格式:@注解名称(属性名称=属性值,属性名称=属性值…)(2)使用注解,注解作用在类上面,方法上面,属性上... 查看详情
spring5学习笔记—“ioc操作bean管理(基于注解)”(代码片段)
IOC操作Bean管理(基于注解方式)一、什么是注解(1)注解是代码特殊标记格式:@注解名称(属性名称=属性值,属性名称=属性值…)(2)使用注解,注解作用在类上面,方法上面,属性上... 查看详情