Spring学习(九):JdbcTemplate操作数据库实现增加功能

107 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第8天,点击查看活动详情

什么是JdbcTemplate?

为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架.

作为 SpringJDBC 框架的核心, JDBC 模板的设计目的是为不同类型的JDBC操作提供模板方法. 每个模板方法都能控制整个过程,并允许覆盖过程中的特定任务.通过这种方式,可以在尽可能保留灵活性的情况下,将数据库存取的工作量降到最低.

简而言之,Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作

JdbcTemplate主要提供以下五类方法:

  • execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
  • update方法:update方法用于执行新增、修改、删除等语句;
  • batchUpdate方法:batchUpdate方法用于执行批处理相关语句;
  • query方法及queryForXXX方法:用于执行查询相关语句;
  • call方法:用于执行存储过程、函数相关语句。

经过前面的准备工作,我们已经创建了各种类,也做好了各种配置(见上篇博客),下面我们就要用JdbcTemplate操作数据库实现增加功能。

1、对应数据库创建实体类:

        数据库创建:

        创建对应的实体类Book:

package demo.entity;
 
public class Book {
    private String userId;
    private String username;
    private String ustatus;
 
    public String getUserId() {
        return userId;
    }
    public String getUsername() {
        return username;
    }
    public String getUstatus() {
        return ustatus;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public void setUstatus(String ustatus) {
        this.ustatus = ustatus;
    }
}

2、在BookDaoImpl中实现增加方法

        BookDao:

package demo.dao;
 
import demo.entity.Book;
 
public interface BookDao {
    //添加
    public void addBook(Book book);
}

BookDaoImpl:

package demo.dao;
 
import demo.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
 
/**
 * 实现数据库的操作
 */
@Repository
public class BookDaoImpl implements BookDao {
 
    //注入jdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
 
    @Override
    public void addBook(Book book) {
        String sql = "insert into t_book values(?,?,?)";
        Object[] args = {book.getUserId(), book.getUsername(), book.getUstatus()};
        //使用update()方法实现增删改
        int update = jdbcTemplate.update(sql, args);
        System.out.println(update);
 
    }
}

JdbcTemplate中,使用update()方法实现数据库的增删改,其他代码是基础的jdbc知识

3、在BookService中调用增加方法:

package demo.service;
 
import demo.dao.BookDao;
import demo.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
@Service
public class BookService {
    //注入dao
    @Autowired
    private BookDao bookDao;
 
    //添加
    public void addBook(Book book){
        bookDao.addBook(book);
    }
}

4、写个测试类测试一下

@Test
    public void test(){
        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("哈哈哈");
 
        bookService.addBook(book);
    }

看一下运行结果:

控制台输出1,说明成功插入一条数据

再看看数据库:

可以看到成功插入数据

删除和修改操作也是同理,仅仅是sql语句的不同。