Spring基础(十三):JDBCTemplate的批操作

举报
Lansonli 发表于 2022/09/25 05:00:23 2022/09/25
【摘要】 文章目录 JDBCTemplate的批操作 一、实体类 二、DeptService 三、DeptDao 四、测试 JDBCTemplate的批操作 一次连接,操作表格里的多条数据,就是批量操作。 案例操作 批量增加批量修改批量删除 一、实体类 package com.lanson.pojo;import...

文章目录

JDBCTemplate的批操作

一、实体类

二、DeptService

三、DeptDao

四、测试


JDBCTemplate的批操作

一次连接,操作表格里的多条数据,就是批量操作。

案例操作

  • 批量增加
  • 批量修改
  • 批量删除

一、实体类


  
  1. package com.lanson.pojo;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import java.io.Serializable;
  6. /**
  7. * @Author: Lansonli
  8. * @Description: MircoMessage:Mark_7001
  9. */
  10. @AllArgsConstructor
  11. @NoArgsConstructor
  12. @Data
  13. public class Dept implements Serializable {
  14. private Integer deptno;
  15. private String dname;
  16. private String loc;
  17. }

二、DeptService


  
  1. package com.lanson.service;
  2. import com.lanson.pojo.Dept;
  3. import java.util.List;
  4. /**
  5. * @Author: Lansonli
  6. * @Description: MircoMessage:Mark_7001
  7. */
  8. public interface DeptService {
  9. int[] deptBatchAdd(List<Dept> depts);
  10. int[] deptBatchUpdate(List<Dept> depts);
  11. int[] deptBatchDelete(List<Integer> deptnos);
  12. }

  
  1. package com.lanson.service.impl;
  2. import com.lanson.dao.DeptDao;
  3. import com.lanson.pojo.Dept;
  4. import com.lanson.service.DeptService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Service;
  7. import java.util.List;
  8. /**
  9. * @Author: Lansonli
  10. * @Description: MircoMessage:Mark_7001
  11. */
  12. @Service
  13. public class DeptServiceImpl implements DeptService {
  14. @Autowired
  15. private DeptDao deptDao;
  16. @Override
  17. public int[] deptBatchAdd(List<Dept> depts) {
  18. return deptDao.deptBatchAdd(depts);
  19. }
  20. @Override
  21. public int[] deptBatchUpdate(List<Dept> depts) {
  22. return deptDao.deptBatchUpdate(depts);
  23. }
  24. @Override
  25. public int[] deptBatchDelete(List<Integer> deptnos) {
  26. return deptDao.deptBatchDelete(deptnos);
  27. }
  28. }

 

三、DeptDao


  
  1. package com.lanson.dao;
  2. import com.lanson.pojo.Dept;
  3. import java.util.List;
  4. /**
  5. * @Author: Lansonli
  6. * @Description: MircoMessage:Mark_7001
  7. */
  8. public interface DeptDao {
  9. int[] deptBatchAdd(List<Dept> depts);
  10. int[] deptBatchUpdate(List<Dept> depts);
  11. int[] deptBatchDelete(List<Integer> deptnos);
  12. }

  
  1. package com.lanson.dao.impl;
  2. import com.lanson.dao.DeptDao;
  3. import com.lanson.pojo.Dept;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.jdbc.core.JdbcTemplate;
  6. import org.springframework.stereotype.Repository;
  7. import java.util.LinkedList;
  8. import java.util.List;
  9. /**
  10. * @Author: Lansonli
  11. * @Description: MircoMessage:Mark_7001
  12. */
  13. @Repository
  14. public class DeptDaoImpl implements DeptDao {
  15. @Autowired
  16. private JdbcTemplate jdbcTemplate;
  17. @Override
  18. public int[] deptBatchAdd(List<Dept> depts) {
  19. String sql ="insert into dept values(DEFAULT,?,?)";
  20. List<Object[]> args =new LinkedList<>();
  21. for (Dept dept : depts) {
  22. Object[] arg ={dept.getDname(),dept.getLoc()};
  23. args.add(arg);
  24. }
  25. return jdbcTemplate.batchUpdate(sql, args);
  26. }
  27. @Override
  28. public int[] deptBatchUpdate(List<Dept> depts) {
  29. String sql ="update dept set dname =? ,loc =? where deptno=?";
  30. List<Object[]> args =new LinkedList<>();
  31. for (Dept dept : depts) {
  32. Object[] arg ={dept.getDname(),dept.getLoc(),dept.getDeptno()};
  33. args.add(arg);
  34. }
  35. return jdbcTemplate.batchUpdate(sql, args);
  36. }
  37. @Override
  38. public int[] deptBatchDelete(List<Integer> deptnos) {
  39. String sql ="delete from dept where deptno =?";
  40. List<Object[]> args =new LinkedList<>();
  41. for (Integer deptno : deptnos) {
  42. Object[] arg ={deptno};
  43. args.add(arg);
  44. }
  45. return jdbcTemplate.batchUpdate(sql, args);
  46. }
  47. }

四、测试


  
  1. package com.lanson.test;
  2. import com.lanson.pojo.Dept;
  3. import com.lanson.service.DeptService;
  4. import com.lanson.service.EmpService;
  5. import org.junit.Test;
  6. import org.springframework.context.ApplicationContext;
  7. import org.springframework.context.support.ClassPathXmlApplicationContext;
  8. import java.util.ArrayList;
  9. import java.util.Arrays;
  10. import java.util.List;
  11. /**
  12. * @Author: Lansonli
  13. * @Description: MircoMessage:Mark_7001
  14. */
  15. public class Test2 {
  16. @Test
  17. public void testBatchAdd(){
  18. ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
  19. DeptService deptService = context.getBean(DeptService.class);
  20. List<Dept> depts =new ArrayList<>();
  21. for (int i = 0; i < 10; i++) {
  22. depts.add(new Dept(null,"name"+i,"loc"+i));
  23. }
  24. int[] ints = deptService.deptBatchAdd(depts);
  25. System.out.println(Arrays.toString(ints));
  26. }
  27. @Test
  28. public void testBatchUpdate(){
  29. ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
  30. DeptService deptService = context.getBean(DeptService.class);
  31. List<Dept> depts =new ArrayList<>();
  32. for (int i = 51; i <=60; i++) {
  33. depts.add(new Dept(i,"newname","newLoc"));
  34. }
  35. int[] ints = deptService.deptBatchUpdate(depts);
  36. System.out.println(Arrays.toString(ints));
  37. }
  38. @Test
  39. public void testBatchDelete(){
  40. ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
  41. DeptService deptService = context.getBean(DeptService.class);
  42. List<Integer> deptnos =new ArrayList<>();
  43. for (int i = 51; i <=69; i++) {
  44. deptnos.add(i);
  45. }
  46. int[] ints = deptService.deptBatchDelete(deptnos);
  47. System.out.println(Arrays.toString(ints));
  48. }
  49. }

  • 📢博客主页:https://lansonli.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

文章来源: lansonli.blog.csdn.net,作者:Lansonli,版权归原作者所有,如需转载,请联系作者。

原文链接:lansonli.blog.csdn.net/article/details/126899417

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。