首页 > 其他分享 >15_Spring_JDBCTemplate批操作

15_Spring_JDBCTemplate批操作

时间:2023-07-30 12:57:21浏览次数:49  
标签:15 int Spring List JDBCTemplate depts import com msb

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<Dept> depts);
    
  8. int[] deptBatchUpdate(List<Dept> depts);
    
  9. int[] deptBatchDelete(List<Integer> 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<Dept> depts) {
    
  26.     return deptDao.deptBatchAdd(depts);
    
  27. }
    
  28. @Override
    
  29. public int[] deptBatchUpdate(List<Dept> depts) {
    
  30.     return  deptDao.deptBatchUpdate(depts);
    
  31. }
    
  32. @Override
    
  33. public int[] deptBatchDelete(List<Integer> 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<Dept> depts);
    
  8. int[] deptBatchUpdate(List<Dept> depts);
    
  9. int[] deptBatchDelete(List<Integer> 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<Dept> 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<Dept> 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<Integer> 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<Dept> 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<Dept> 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<Integer> 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

标签:15,int,Spring,List,JDBCTemplate,depts,import,com,msb
From: https://www.cnblogs.com/01way/p/17591286.html

相关文章

  • 17_Spring_事务环境搭建
    17_Spring_事务环境搭建通过张三给李四转账案例演示事务的控制1数据库中准备表格applicationContext.xmljdbc.properties见上节课2项目中准备实体类packagecom.msb.pojo;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;i......
  • 18_Spring_事务管理注解方式
    18_Spring_事务管理注解方式事务的管理应该放在我们的service层进行处理spring中有两种事务的管理方式1编程式事务管理(了解)2声明式事务管理(掌握)基于注解方式实现(掌握)XML方式实现(了解)Spring声明式事务的实现方式,底层就是AOP,AOP的底层就是动态代理Spring事务管......
  • 19_Spring_事务管理XML配置方式
    19_Spring_事务管理XML配置方式applicationContext中,通过AOP实现事务的控制<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/sche......
  • 20_Spring_零XML事务控制
    20_Spring_零XML事务控制创建配置类packagecom.msb.config;importcom.alibaba.druid.pool.DruidDataSource;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annot......
  • 21_Spring_日志框架和测试支持
    21_Spring_日志框架和测试支持spring5框架自带了通用的日志封装,也可以整合自己的日志1)spring移除了LOG4jConfigListener,官方建议使用log4j22)spring5整合log4j2导入log4j2依赖<!--log4j2依赖--><!--<dependency><groupId>org.apache.logg......
  • springboot logback 配置文件 自定义logback配置文件
    logging:level:#配置全部的调试级别#root:trace#配置具体包路径下的调试级别com.example.springboot03:tracepattern:#默认控制台输出格式console:'%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-ddHH:mm:ss.SSSXXX}}){faint}%clr(${LOG_......
  • 3_Spring_IOC原理分析_重要
    3_Spring_IOC原理分析_重要IOC底层原理1XML解析技术读取配置文件将上面的信息读取进入程序 对象的ID,一个是对象的类的全路径名2反射技术实例化对象,放到容器中获得类的字节码Classclazz=Class.forName("com.msb.dao.impl.EmpDaoImpl")通过字节码实例化对象Ob......
  • 2_Spring_IOC概念引入_重要
    2_Spring_IOC概念引入_重要简单的说就是,创建对象的权利,或者是控制的位置,由JAVA代码转移到spring容器,由spring的容器控制对象的创建,就是控制反转,spring创建对象时,会读取配置文件中的信息,然后使用反射给我们创建好对象之后在容器中存储起来,当我们需要某个对象时,通过id......
  • 6_Spring_Bean的自动装配
    6_Spring_Bean的自动装配bean自动装配通过property标签可以手动指定给属性进行注入我们也可以通过自动转配,完成属性的自动注入,就是自动装配,可以简化DI的配置准备实体类packagecom.msb.bean;/**@Author:MaHaiYang@Description:MircoMessage:Mark_7001......
  • 5_Spring_Bean的生命周期
    5_Spring_Bean的生命周期bean从创建到销毁经历的各个阶段以及每个阶段所调用的方法1通过构造器创建bean实例     执行构造器2为bean属性赋值            执行set方法3初始化bean                调......