JdbcTemplate(概念和准备)
1、概念
(1)Spring框架对JDBC进行封装,使用JDBCTemplate方便实现对数据库操作
2、准备工作
(1)引入相关jar包
(2)在Spring配置文件配置数据库连接池
(3)配置JdbcTemplate对象,注入DataSource
(4)创建service类,dao类,在dao注入jdbcTemplate对象
①组件扫描
②Service
③Dao
JdbcTemplate操作数据库(添加、修改和删除)添加为例
1、对应数据库表创建实体类
2、编写service和dao
(1)在dao和service增加添加、修改和删除方法
(2)调用JdbcTemplate对象里面update方法实现添加、修改和删除方法
第一个参数:sql语句
第二个参数:可变参数,设置sql语句值
(3)测试类(实际情况下book的值是通过页面传输过来的)
JdbcTemplate操作数据库(查询返回某个值)
1、查询表里有多少条记录 select count(*) from t_book
2、使用JdbcTemplate实现查询返回某个值的代码
第二个参数 返回类型的Class
实现BookService类方法
实现BookDao类方法
JdbcTemplate操作数据库(查询返回对象)
1、场景:查询某本书图书详情
2、调用JdbcTemplate方法实现查询返回对象
第二个参数:RowMappe接口,返回不同类型数据,使用这个接口里面实现类完成数据封装
第三个参数:sql语句值
JdbcTemplate操作数据库(查询返回集合)
1、场景:查询图书列表分页
2、调用JdbcTemplate方法实现查询返回对象
JdbcTemplate操作数据库(批量操作)
1、操作表里多条记录
2、批量添加
第二个参数:List集合,添加多条记录的数据
3、批量删除
4、批量修改
代码目录
BookDao代码
package jdbcTemplate.dao;
import jdbcTemplate.entity.Book;
import org.springframework.stereotype.Service;
import java.util.List;
public interface BookDao {
void add(Book book);
void update(Book book);
void delete(String id);
int selectCount();
Book findBookInfo(String id);
List<Book> findAllBook();
void batchAddBook(List<Object[]> batchArgs);
void batchUpdateBook(List<Object[]> batchArgs);
void batchDeleteBook(List<Object[]> batchArgs);
}
BookDaoImpl代码
package jdbcTemplate.dao;
import jdbcTemplate.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.Arrays;
import java.util.List;
@Repository
public class BookDaoImpl implements BookDao{
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void add(Book book) {
String sql = "insert into t_book values(?,?,?)";
jdbcTemplate.update(sql,book.getUserId(),book.getUsername(),book.getUstatus());
}
@Override
public void update(Book book) {
String sql = "update t_book set username=?,ustatus=? where user_id=?";
jdbcTemplate.update(sql,book.getUsername(),book.getUstatus(),book.getUserId());
}
@Override
public void delete(String id) {
String sql = "delete from t_book where user_id=?";