一、先在mysql创建好一个数据库

二、使用JdbcTemplate需要引入的依赖(spring的maven项目)
<!-- jdbcTemplate实现jar -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.43</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!-- 事务管理 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!--上下文-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.22</version>
</dependency>
<!--beans依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.23</version>
</dependency>
<!--core核心-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.22</version>
</dependency>
三、环境搭配----bean.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:component-scan base-package="com.lxh.spring5"></context:component-scan>
<!--创建数据源(带druid连接池)-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<property name="url" value="jdbc:mysql://localhost/book"></property>
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="username" value="root"></property>
<property name="password" value="laixinghai"></property>
</bean>
<!--创建jdbcTemplate对象-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!--注入dataSource-->
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
四、创建实体类Book
public class Book {
private String userId; // 用户id
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;
}
@Override
public String toString() {
return "Book{" +
"userId='" + userId + '\'' +
", username='" + username + '\'' +
", ustatus='" + ustatus + '\'' +
'}';
}
}
五、dao层代码
BookDao接口
import com.lxh.spring5.entity.Book;
import java.util.List;
public interface BookDao {
// 添加方法
public void add(Book book);
// 修改方法
public void updateBook(Book book);
// 删除方法
public void delete(String id);
// 查询表记录的个数
public int selectCount();
// 类查询指定id查找
public Book findBookInfo(String id);
// 查找全部
public List<Book> findAllBook();
}
BookDaoImpl实现类
import com.lxh.spring5.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class BookDaoImpl implements BookDao{
// 注入JDBCTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
// 添加方法
@Override
public void add(Book book) {
// 1.创建sql语句
String sql = "insert into t_book value(?,?,?)";
// 2.1调用方法实现
// int update = jdbcTemplate.update(sql, book.getUserId(), book.getUsername(), book.getUstatus());
// 2.2调用方法实现
Object[] obj = new Object[] {book.getUserId(), book.getUsername(), book.getUstatus()};
int update = jdbcTemplate.update(sql, obj);
System.out.println(update);
}
// 修改方法
@Override
public void updateBook(Book book) {
String sql = "update t_book set username=?, ustatus=? where user_id=?";
Object[] obj = new Object[] {book.getUsername(), book.getUstatus(), book.getUserId()};
int update = jdbcTemplate.update(sql, obj);
System.out.println(update);
}
// 删除
@Override
public void delete(String id) {
String sql = "delete from t_book where user_id=?";
int update = jdbcTemplate.update(sql, id);
System.out.println(update);
}
// 查询表记录的个数
@Override
public int selectCount() {
String sql = "select count(*) from t_book";
Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
return count;
}
// 查询返回对象
@Override
public Book findBookInfo(String id) {
String sql = "select * from t_book where user_id=?";
// RowMapper接口,针对返回不同类型数据,使用这个接口实现类完成数据封装
Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);
return book;
}
// 查询返回集合
@Override
public List<Book> findAllBook() {
String sql = "select * from t_book";
// RowMapper接口,针对返回不同类型数据,使用这个接口实现类完成数据封装
List<Book> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));
return query;
}
}
六、service层代码
import com.lxh.spring5.dao.BookDao;
import com.lxh.spring5.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service(value = "bookService")
public class BookService {
// 注入dao
@Autowired
private BookDao bookDao;
// 调用添加方法
public void addBook(Book book) {
bookDao.add(book);
}
// 调用修改方法
public void updateBook(Book book) {
bookDao.updateBook(book);
}
// 调用删除方法
public void delete(String id) {
bookDao.delete(id);
}
// 调用查询表记录的个数
public int find() {
return bookDao.selectCount();
}
// 调用查询返回对象
public Book findOne(String id) {
return bookDao.findBookInfo(id);
}
// 调用查询返回集合
public List<Book> findAll() {
return bookDao.findAllBook();
}
}
七、测试代码
import com.lxh.spring5.entity.Book;
import com.lxh.spring5.service.BookService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestBook {
// 添加
@Test
public void testAdd() {
ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
BookService bookService = context.getBean("bookService", BookService.class);
Book book = new Book();
book.setUserId("1");
book.setUsername("java");
book.setUstatus("A");
bookService.addBook(book);
}
// 修改
@Test
public void testUpdate() {
ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
BookService bookService = context.getBean("bookService", BookService.class);
Book book = new Book();
book.setUserId("1");
book.setUsername("python");
book.setUstatus("b");
bookService.updateBook(book);
}
// 删除
@Test
public void testDelete() {
ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
BookService bookService = context.getBean("bookService", BookService.class);
bookService.delete("1");
}
// 查询记录个数
@Test
public void testSelectCount() {
ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
BookService bookService = context.getBean("bookService", BookService.class);
System.out.println(bookService.find());
}
// 类查询指定id查找
@Test
public void testFindBookInfo() {
ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
BookService bookService = context.getBean("bookService", BookService.class);
System.out.println(bookService.findOne("1"));
}
// 查找返回集合
@Test
public void testFindAllBook() {
// 1.创建Spring配置文件对象
ApplicationContext context = new ClassPathXmlApplicationContext("bean01.xml");
// 2.调用对象
BookService bookService = context.getBean("bookService", BookService.class);
System.out.println(bookService.findAll());
}
}