一、介绍JdbcTemplate
Spring框架对JDBC进行封装,使用JdbcTemplate可以方便实现对数据库操作,接下来将会详细介绍如何通过Spring框架中的JdbcTemplate对数据库进行操作。
二、准备工作
1.在IDEA里新建一个Java工程,工程名自取,这里我们取“Spring5_jdbcTemplate”,然后在工程下新建一个lib目录,用于放置一些导入的jar包。
2.导入相关jar包,并添加到工程库中。相关的jar包在下面的连接中。
链接:https://pan.baidu.com/s/1dyqjOKzl9e3LiEgQiLSklQ
提取码:6666
复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V3的分享
3.在工程src下面新建Spring配置文件bean1.xml
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下建个各个包。
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,并创建表
五,运行测试程序,看结果
六、思路总结
1.用Spring框架操作数据库,首先需要导入相关jar包,
配置文件很重要,配置数据库连接池时需要注意时区的设置,然后配置JdbcTemplate对象,最后是需要设置组件扫描,用于利用注解来创建对象。
2.service层函数调用dao层的add方法,核心函数在dao层的实现类里面,首先引入jdbcTemplate,然后利用jdbcTemplate的update方法传入相应参数即可。
3.测试方法中首先需要根据配置文件创建context对象,然后利用getBean函数创建service对象,最后调用service里面的函数即可。
4.通过前面的步骤,可以发现利用jdbcTemplate操作数据库很方便,不需要额外编写增删改查方法,只需要传入相应参数即可。