Spring学习笔记之jdbcTemplate操作数据库

一、介绍JdbcTemplate

      Spring框架对JDBC进行封装,使用JdbcTemplate可以方便实现对数据库操作,接下来将会详细介绍如何通过Spring框架中的JdbcTemplate对数据库进行操作。

二、准备工作

      1.在IDEA里新建一个Java工程,工程名自取,这里我们取“Spring5_jdbcTemplate”,然后在工程下新建一个lib目录,用于放置一些导入的jar包。
Spring学习笔记之jdbcTemplate操作数据库
      2.导入相关jar包,并添加到工程库中。相关的jar包在下面的连接中。

链接:https://pan.baidu.com/s/1dyqjOKzl9e3LiEgQiLSklQ 
提取码:6666 
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V3的分享

Spring学习笔记之jdbcTemplate操作数据库
Spring学习笔记之jdbcTemplate操作数据库

      3.在工程src下面新建Spring配置文件bean1.xml
Spring学习笔记之jdbcTemplate操作数据库
      4.在配置文件里配置数据库连接池

<?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:component-scan base-package="com.atguigu"></context:component-scan>

    <!-- 数据库连接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
          destroy-method="close">
        <property name="url" value="jdbc:mysql:///user_db?serverTimezone=UTC" />    <!-- 记得配置时区 -->
        <property name="username" value="root" />
        <property name="password" value="cg" />          <!-- 此处填你的数据库密码 -->
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
    </bean>

    <!-- JdbcTemplate对象 -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!--注入dataSource-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>

</beans>

      5.如下图所示在src下建个各个包。
Spring学习笔记之jdbcTemplate操作数据库

      6.在entity包里新建Book类,代码如下:

package com.atguigu.spring5.entity;

public class Book {
    private String userId;
    private String username;
    private String ustatus;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUstatus() {
        return ustatus;
    }

    public void setUstatus(String ustatus) {
        this.ustatus = ustatus;
    }
}

      7.在dao包里新建BookDao接口和BookDaoImpl实现类,代码如下:
(1)BookService:

package com.atguigu.spring5.service;

import com.atguigu.spring5.dao.BookDao;
import com.atguigu.spring5.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class BookService {
    @Autowired
    private BookDao bookDao;

    public void addBook(Book book){
        bookDao.add(book);
    }

}


(2)BookDao:

package com.atguigu.spring5.dao;

import com.atguigu.spring5.entity.Book;

public interface BookDao {
    void add(Book book);
}

(3)BookDaoImpl:

package com.atguigu.spring5.dao;

        import com.atguigu.spring5.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 {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void add(Book book) {
        //1 创建sql语句
        String sql = "insert into t_book values(?,?,?)";
        //2 调用方法实现
        Object[] args = {book.getUserId(), book.getUsername(), book.getUstatus()};
        int update = jdbcTemplate.update(sql,args);
        System.out.println(update);
    }
}


三、在Test包里编写test方法

package com.atguigu.spring5.Test;

import com.atguigu.spring5.entity.Book;
import com.atguigu.spring5.service.BookService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class TestjdbcRemplate {
    @Test
    public void testJdbcTemplate(){
        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("a");
        bookService.addBook(book);
    }

}

四、利用SQLyog连接数据里mysql,并创建表

Spring学习笔记之jdbcTemplate操作数据库

五,运行测试程序,看结果

Spring学习笔记之jdbcTemplate操作数据库
Spring学习笔记之jdbcTemplate操作数据库

六、思路总结

      1.用Spring框架操作数据库,首先需要导入相关jar包,
配置文件很重要,配置数据库连接池时需要注意时区的设置,然后配置JdbcTemplate对象,最后是需要设置组件扫描,用于利用注解来创建对象。

      2.service层函数调用dao层的add方法,核心函数在dao层的实现类里面,首先引入jdbcTemplate,然后利用jdbcTemplate的update方法传入相应参数即可。

      3.测试方法中首先需要根据配置文件创建context对象,然后利用getBean函数创建service对象,最后调用service里面的函数即可。

      4.通过前面的步骤,可以发现利用jdbcTemplate操作数据库很方便,不需要额外编写增删改查方法,只需要传入相应参数即可。

上一篇:百万年薪python之路 -- day10作业 -- 函数的动态参数


下一篇:数据库连接池&Spring JDBC(JdbcTemplate)