15_Spring_JDBCTemplate批操作

15_Spring_JDBCTemplate批操作

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

1 批量增加

2 批量修改

3 批量删除

实体类

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

DeptService

  1. package com.msb.service;

  2. import com.msb.pojo.Dept;

  3. import java.util.List;

  4. /**

    • @Author: Ma HaiYang
    • @Description: MircoMessage:Mark_7001
  5. */

  6. public interface DeptService {

  7. int[] deptBatchAdd(List depts);

  8. int[] deptBatchUpdate(List depts);

  9. int[] deptBatchDelete(List deptnos);

  10. }

  11. package com.msb.service.impl;

  12. import com.msb.dao.DeptDao;

  13. import com.msb.pojo.Dept;

  14. import com.msb.service.DeptService;

  15. import org.springframework.beans.factory.annotation.Autowired;

  16. import org.springframework.stereotype.Service;

  17. import java.util.List;

  18. /**

    • @Author: Ma HaiYang
    • @Description: MircoMessage:Mark_7001
  19. */

  20. @Service

  21. public class DeptServiceImpl implements DeptService {

  22. @Autowired

  23. private DeptDao deptDao;

  24. @Override

  25. public int[] deptBatchAdd(List depts) {

  26. return deptDao.deptBatchAdd(depts);

  27. }

  28. @Override

  29. public int[] deptBatchUpdate(List depts) {

  30. return deptDao.deptBatchUpdate(depts);

  31. }

  32. @Override

  33. public int[] deptBatchDelete(List deptnos) {

  34. return deptDao.deptBatchDelete(deptnos);

  35. }

  36. }

DeptDao

  1. package com.msb.dao;

  2. import com.msb.pojo.Dept;

  3. import java.util.List;

  4. /**

    • @Author: Ma HaiYang
    • @Description: MircoMessage:Mark_7001
  5. */

  6. public interface DeptDao {

  7. int[] deptBatchAdd(List depts);

  8. int[] deptBatchUpdate(List depts);

  9. int[] deptBatchDelete(List deptnos);

  10. }

  11. package com.msb.dao.impl;

  12. import com.msb.dao.DeptDao;

  13. import com.msb.pojo.Dept;

  14. import org.springframework.beans.factory.annotation.Autowired;

  15. import org.springframework.jdbc.core.JdbcTemplate;

  16. import org.springframework.stereotype.Repository;

  17. import java.util.LinkedList;

  18. import java.util.List;

  19. /**

    • @Author: Ma HaiYang
    • @Description: MircoMessage:Mark_7001
  20. */

  21. @Repository

  22. public class DeptDaoImpl implements DeptDao {

  23. @Autowired

  24. private JdbcTemplate jdbcTemplate;

  25. @Override

  26. public int[] deptBatchAdd(List depts) {

  27. String sql ="insert into dept values(DEFAULT,?,?)";

  28. List<Object[]> args =new LinkedList<>();

  29. for (Dept dept : depts) {

  30. Object[] arg ={dept.getDname(),dept.getLoc()};

  31. args.add(arg);

  32. }

  33. return jdbcTemplate.batchUpdate(sql, args);

  34. }

  35. @Override

  36. public int[] deptBatchUpdate(List depts) {

  37. String sql ="update dept set dname =? ,loc =? where deptno=?";

  38. List<Object[]> args =new LinkedList<>();

  39. for (Dept dept : depts) {

  40. Object[] arg ={dept.getDname(),dept.getLoc(),dept.getDeptno()};

  41. args.add(arg);

  42. }

  43. return jdbcTemplate.batchUpdate(sql, args);

  44. }

  45. @Override

  46. public int[] deptBatchDelete(List deptnos) {

  47. String sql ="delete from dept where deptno =?";

  48. List<Object[]> args =new LinkedList<>();

  49. for (Integer deptno : deptnos) {

  50. Object[] arg ={deptno};

  51. args.add(arg);

  52. }

  53. return jdbcTemplate.batchUpdate(sql, args);

  54. }

  55. }

测试

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


Generated with Mybase Desktop 8.2.13

posted @ 2023-07-30 12:40  AidenDong  阅读(33)  评论(0)    收藏  举报