Spring5学习笔记(11) — “JdbcTemplate 操作数据库(增删改)”

本文详细介绍了如何使用Spring的JdbcTemplate组件在MySQL数据库中进行增删改操作。首先,创建了book表并设置了项目结构,包括DAO接口、实现类、实体类和服务类。接着,通过JdbcTemplate的update方法实现了book表的插入、删除和更新操作,并提供了相应的测试用例展示操作结果。整个过程中,关键在于正确编写SQL语句和参数匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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表:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值