- 什么是JdbcTemplate
- Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库的操作
- 准备工作
- 引入相关的jar包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NOyWzANa-1638844933137)(C:UsersMasterAppDataRoamingTyporatypora-user-imagesimage-20211204205952748.png)]
- 数据库连接池
- 配置JdbcTemplate对象,注入DataSource
- 创建一个service类,创建dao类,在dao注入jdbcTemplate对象
配置文件:
source:
@Service public class BookSource { @Autowired private BookImp bookImp; }BookImp:
@Component public class BookImp implements Book{ @Autowired private JdbcTemplate jdbcTemplate; }
- 引入相关的jar包
- JdbcTemplate操作数据库(添加)
- 对应数据库创建实体类
- 编写service和dao
-
在Book中进行数据库添加操作
-
调用JdbcTemplate对象里面updata方法实现添加操作
这个方法有两个参数:
第一个参数sql语句,第二个参数可变参数,设置sql语句值
@Component public class BookImp implements Book{ @Autowired private JdbcTemplate jdbcTemplate; public void add(User user){ String sql1 = "insert into spring values(?,?,?);"; Object[] args = {user.getUserId(),user.getUserName(),user.getUserStatus()}; int result = jdbcTemplate.update(sql1,args); System.out.println(result); } } - 在BookSource中完成添加数据的操作
@Service public class BookSource { @Autowired private BookImp bookImp; public void bookAdd(User user){ bookImp.add(user); } }
-
- JdbcTemplate操作数据库(修改和删除)
- 在Book接口中添加删除和修改两个方法
public interface Book { //添加方法 public void add(User user); //修改方法 public void update(User user); //删除方法 public void delete(String id); } - 在BookImp实现类之中重写删除和修改两个方法
//修改方法 public void update(User user){ String sql2 = "update spring set name=?,status=? where id=?;"; Object[] args = {user.getUserName(),user.getUserStatus(),user.getUserId()}; int result = jdbcTemplate.update(sql2,args); System.out.println(result); } //删除方法 public void delete(String id) { String sql3 = "delete from spring where id=?"; int result = jdbcTemplate.update(sql3,id); System.out.println(result); } - 在BookSource类中添加删除和修改
//数据库的修改操作 public void bookUpdate(User user){ bookImp.update(user); } //数据库的删除操作 public void bookDelete(String id){ bookImp.delete(id); }
- 在Book接口中添加删除和修改两个方法
- JdbcTemplate操作数据库(查询)
- 查询返回某个值
//查询返回所有数据的个数 @Override public int selectCountBook() { String sql4 = "select count(*) from spring"; int result = jdbcTemplate.queryForObject(sql4,Integer.class); System.out.println(result); return result; } - 查询返回对象
-
场景:查询图书详情
-
JdbcTemplate实现查询返回
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-riAguf5p-1638844933138)(C:UsersMasterAppDataRoamingTyporatypora-user-imagesimage-20211205110020838.png)]
总共有三个参数
(1)sql语句。
(2)RowMapper是接口,针对返回不同类型的数据,使用接口里面实现类完成数据封装
(3)sql语句值
*注意数据库中的字段名和java中的字段名一定要一样
@Override public User selectObjectBook(String id) { String sql5 = "select * from spring where id=?"; User user = jdbcTemplate.queryForObject(sql5, new BeanPropertyRowMapper(User.class),id); return user; }
-
- 查询返回集合
-
场景:查询图书列表分页
-
调用JdbcTemplate方法实现查询返回集合
调用的方法是query,返回值为list集合
总共有三个参数
(1)sql语句。
(2)RowMapper是接口,针对返回不同类型的数据,使用接口里面实现类完成数据封装
(3)sql语句值
-
- 查询返回某个值
- JdbcTemplate操作数据库(批量操作)
-
批量操作就是操作表里面的多条记录
-
JdbcTemplate实现批量添加操作
batchUpdate(String sql,List
有两个参数
第一个参数:sql语句
第二个参数:List集合,添加多条记录
@Override public void adds() { String sql7 = "insert into spring values(?,?,?);"; List
-
istBatch.add(o1);
listBatch.add(o2);
listBatch.add(o3);
int[] result = jdbcTemplate.batchUpdate(sql7,listBatch);
System.out.println(Arrays.toString(result));
}
```



