Spring5学习笔记(11) — “JdbcTemplate 操作数据库(增删改)”
Posted 一切因为是码农
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring5学习笔记(11) — “JdbcTemplate 操作数据库(增删改)”相关的知识,希望对你有一定的参考价值。
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学习笔记(11) — “JdbcTemplate 操作数据库(增删改)”的主要内容,如果未能解决你的问题,请参考以下文章