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

Posted 一切因为是码农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring5学习笔记(11) — “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 操作数据库(增删改)”的主要内容,如果未能解决你的问题,请参考以下文章

Spring5学习笔记

Spring5学习笔记

Spring5学习笔记

Spring5学习笔记

Spring5学习笔记(14) — “Spring5 声明式事务管理”

Spring5学习笔记(14) — “Spring5 声明式事务管理”