Jdbc配置文件连接mysql8.0——批量增删改查操作

news2024/11/26 22:24:54

目录

一、批量插入数据

(一)在DogDao中新增一个功能saveDogList

(二)DogDaoImpl实现类中定义字符串拼接实现功能saveDogList

(三)DogTest测试

(四)批量插入运行结果

(五)优化后的批量插入

1.DogDao接口中还是使用原来的新增功能saveDog

2. DogDaoImpl实现类中实现saveDog功能

3.DogTest测试

4.批量新增优化后的运行结果

二、批量删除数据

1.DogDao接口

2.代码实现

3.运行结果

三、批量修改数据

1.代码实现

2.批量修改运行结果

四、批量查询数据

1.代码实现

2.批量查询运行结果

五、作者要说


        我之前的两篇文章《JdbcUtils工具类的优化升级——通过配置文件连接mysql8.0,并对mysql8.0中的表进行[增删改]操作》和《JdbcUtils工具类的优化升级——通过配置文件连接mysql8.0,并对mysql8.0中的表进行[简单查询]操作》都是单行数据的增删改查,接下来讲一下如何进行批量的增删改查操作:

一、批量插入数据

(一)在DogDao中新增一个功能saveDogList

public interface DogDao {
    Integer saveDogList(List<Dog> dogs);
}

(二)DogDaoImpl实现类中定义字符串拼接实现功能saveDogList

public class DogDaoImpl extends BaseDao implements DogDao{
    @Override
    public Integer saveDogList(List<Dog> dogs) {
        String sql = "insert into dog(name,health,love,strain,lytime) values";
        for (Dog dog :
                dogs) {
           sql+= "('"+dog.getName()+"',"+dog.getHealth()+","+dog.getLove()+",'"+dog.getStrain()+"',now()),";
        }
        sql = sql.substring(0,sql.length()-1);
        int num = super.executeUpdate(sql);
        System.out.println("新增成功!");
        return num;
    }

(三)DogTest测试

    @Test // 通过字符串拼接实现插入
    public void testDogDaoInsert(){
        DogDao dogDao = new DogDaoImpl();
        ArrayList<Dog> dogs = new ArrayList<>();
        Dog dog = new Dog("雪碧66", 100, 88, "德牧");
        Dog dog2 = new Dog("雪碧99", 100, 88, "德牧");
        dogs.add(dog);
        dogs.add(dog2);
        dogDao.saveDogList(dogs);
    }

(四)批量插入运行结果

但是这种字符串拼接的方式还是比较麻烦,每新增一条数据,就要写一遍dogs.add(),下面我们可以通过for循环的方法进行上述代码的优化

(五)优化后的批量插入

1.DogDao接口中还是使用原来的新增功能saveDog

public interface DogDao {
    Integer saveDogList(List<Dog> dogs);

    // 利用for循环批量新增
    Integer saveDog(Dog dog);
   }

2. DogDaoImpl实现类中实现saveDog功能

public class DogDaoImpl extends BaseDao implements DogDao{

    @Override
    public Integer saveDogList(List<Dog> dogs) {
        String sql = "insert into dog(name,health,love,strain,lytime) values";
        for (Dog dog :
                dogs) {
           sql+= "('"+dog.getName()+"',"+dog.getHealth()+","+dog.getLove()+",'"+dog.getStrain()+"',now()),";
        }
        sql = sql.substring(0,sql.length()-1);
        int num = super.executeUpdate(sql);
        System.out.println("新增成功!");
        return num;
    }

    @Override
    public Integer saveDog(Dog dog) {
        String sql = "insert into dog(name,health,love,strain,lytime) values(?,?,?,?,now())";
        int num = super.executeUpdate(sql, dog.getName(), dog.getHealth(), dog.getLove(), dog.getStrain());
        System.out.println("新增成功!");
        return num;
    }
}

3.DogTest测试

    @Test // for循环批量新增
    public void testForDogInsert(){
        DogDaoImpl dogDao = new DogDaoImpl();
        ArrayList<Dog> dogs = new ArrayList<>();
        for (int i = 1; i <= 10; i++) {
            Dog dog = new Dog("中华田园犬"+i,100-i,100-i,"中华田园犬"+i);
            dogs.add(dog);
        }
        for (Dog ddd:
             dogs) {
        dogDao.saveDog(ddd);
        }
    }

4.批量新增优化后的运行结果

参考这种方法,删改查的操作也可以通过for循环来实现

二、批量删除数据

1.DogDao接口

package com.atguigu.kb21.dao;
import com.atguigu.kb21.pojo.Dog;
import java.util.List;

public interface DogDao {
    Integer saveDogList(List<Dog> dogs);

    // 利用for循环批量新增
    Integer saveDog(Dog dog);

    Integer updateDog(Dog dog);

    Integer delById(Integer id);

    Integer delByHealth(Integer health);

    // 查询所有狗狗信息
    List<Dog> getAllDog();
    
    // 根据狗狗id查询狗狗信息
    Dog getDogById(Integer id);
}

2.代码实现

    @Test // 根据狗狗id进行for循环批量删除
    public void testForDogDelete(){
        DogDaoImpl dogDao = new DogDaoImpl();
        for (int i = 40; i <= 43; i++) {
            dogDao.delById(i);
        }
    }

3.运行结果

三、批量修改数据

1.代码实现

    @Test // for循环批量修改
    public void testForDogUpdate(){
        DogDaoImpl dogDao = new DogDaoImpl();
        ArrayList<Dog> dogs = new ArrayList<>();
        for (int i = 50; i <= 53; i++) {
            Dog dog = new Dog("狗狗" + i, 40, 50, "犬" + i);
            dog.setId(i);
            dogs.add(dog);
        }
        for (Dog d :
                dogs) {
            dogDao.updateDog(d);
        }
    }

2.批量修改运行结果

四、批量查询数据

1.代码实现

    @Test // 批量查询
    public void testForDogSelect(){
        DogDaoImpl2 dogDaoImpl2 = new DogDaoImpl2();
        // 批量查询id=[15~25]的狗狗信息
        for (int i = 15; i <= 25; i++) {
            dogDaoImpl2.getDogById(i);
        }
    }

2.批量查询运行结果

五、作者要说

        业务上增删改查的需求各式各样,我的for循环也有局限,并不是一劳永逸的,还需要根据具体业务进行优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DOS、DDos攻击详解

目录 一、DDOS 是什么&#xff1f; 二、DDoS的危害 三、常见的DOS攻击 四.DDoS的防范 一、DDOS 是什么&#xff1f; DoS为Denial of Service的简称&#xff0c;意思是拒绝服务。DoS攻击是一种使被攻击者无法正常提供服务的攻击 来解释一下&#xff0c;DDOS 是什么。 举例…

esxi6.0安装

一、安装exsi需要注意的事项&#xff1a; 1.进入BIOS做raid 不同硬件厂商进入bios的方式各不相同&#xff0c;请自行查阅相关资料 RAID 0的特点&#xff1a; 最少需要两块磁盘 数据条带式分布 没有冗余&#xff0c;性能最佳(不存储镜像、校验信息) 不能应用于对数据安全性要求…

代码随想录回溯总结

文章目录0、 前言1、回溯的定义2、回溯解决那些问题3、回溯模板4、问题详解4、1组合问题&#xff1a;[4.1.1 组合](https://leetcode.cn/problems/combinations/)[4.1.2 组合总和 II](https://leetcode.cn/problems/combination-sum-ii/)4.1.3 组合的其他问题4.2排列问题4.2.1[…

3.Isaac入门

Isaac入门 本节提供有关如何开始开发和运行 Isaac 应用程序的指南。 文章目录Isaac入门教程和示例应用程序运行应用程序应用程序控制台选项在 Jetson 上部署和运行Python 应用程序支持使用分布式工作区使用 Docker安装依赖创建 Isaac SDK 开发镜像教程和示例应用程序 有一个可…

【运维有小邓】实时告警通知

当网络上发生特定事件时&#xff0c;EventLog Analyzer可以通过多种方式进行响应。EventLog Analyzer可以实时生成告警 - 发送电子邮件或短信通知给指定的接收者 - 或运行由管理员提供的自定义脚本。通过所提供的多个选项&#xff0c;用户可以确保不会错过任何安全事件。EventL…

Python解题 - CSDN周赛第21期 - 接雨水

本期比赛都是比较基础的排序、查找&#xff0c;没有多少难度。不过有很多人反映第二题测试数据有问题&#xff0c;基本所有选手在本题上都没得分。最近官方每期比赛都会有类似的数据问题&#xff0c;虽然参赛者对数据有疑问&#xff0c;但从未得到解答&#xff0c;官方也未曾公…

十年云深时:天翼云的成长密钥

工业时代&#xff0c;我们通常以“用电量”作为指标&#xff0c;来衡量一个地方的经济发展水平。数字经济时代&#xff0c;“用云量”则与数字经济规模呈正相关。因此&#xff0c;中国数字化浪潮的持续推进&#xff0c;也让云计算行业的重要性与市场竞争性不断提升&#xff0c;…

【C语言】交换奇偶位和 offsetof 宏的实现

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《阿亮爱刷题》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;交换奇偶…

2021年 APP个人信息使用态势分析报告

声明 本文是学习2021年APP个人信息使用态势分析报告. 下载地址 http://github5.com/view/55008而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 App违规行为处罚案例 某赚钱类App未明示信息收集规则被罚 经查公安机关调查&#xff0c;某网络科技公司开…

2023 CPA 会计-存货【刷题】

1. 存货的确认和初始计量 大元公司为增值税一般纳税人&#xff0c;增值税税率为13%。 这句话好像没有用 2019年购入材料300公斤&#xff0c;收到增值税发票注明价款1800万元&#xff0c;增值税税额是234万元。 增值税是在价款的基础上收取的&#xff0c;所以这批材料的价值就是…

【收集】缩写合集

AABB 全称&#xff1a;Axis Aligned Bounding Box参考 https://blog.csdn.net/qq_22822335/article/details/50930437AABB包围盒在游戏中&#xff0c;为了简化物体之间的碰撞检测运算&#xff0c;通常会对物体创建一个规则的几何外形将其包围。其中&#xff0c;AABB&#xff08…

【链表】关于链表,你该了解这些!

【链表】理论基础1 链表是什么1.1 单链表1.2 双链表1.3 循环链表2 链表的存储方式3 链表的定义3.1 C/C方式3.2 Java方式3.3 JavaScript方式4 链表的操作4.1 删除结点4.2 添加结点1 链表是什么 1.1 单链表 单链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两…

谷粒学苑项目-第一章数据库设计与项目结构

一、数据库设计 1、数据库 guli2、数据表 CREATE TABLE edu_teacher (id char(19) NOT NULL COMMENT 讲师ID,name varchar(20) NOT NULL COMMENT 讲师姓名,intro varchar(500) NOT NULL DEFAULT COMMENT 讲师简介,career varchar(500) DEFAULT NULL COMMENT 讲师资历,一句话说…

6个实用的红米手机技巧

❤️作者主页&#xff1a;IT技术分享社区 ❤️作者简介&#xff1a;大家好,我是IT技术分享社区的博主&#xff0c;从事C#、Java开发九年&#xff0c;对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉&#xff1a; 数据库领域优质创作者&#x1f3c6;&#x…

盐湖提锂纳滤膜后钙镁离子深度处理技术

盐湖提锂&#xff1a;大规模、低成本&#xff0c;全球锂资源供应主体的理想来源锂作为自然界中轻、标准电极电势低、电化学当量大的金属元素&#xff0c;是天生理想的“电池金属”&#xff0c;因此在要求高比能的动力和储能应用场景中将具备长期的需求刚性&#xff0c;被誉为“…

Skywalking简单入门使用

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;Skywalking简单入门使用 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;50分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: 林…

软件测试/测试开发丨 | 想做App测试就一定要了解的App结构

性能测试 所谓的性能测试要在功能测试之后。 功能测试&#xff1a;关注能不能用 性能测试&#xff1a;关注好不好用 常见的性能关注点有&#xff1a; 接口响应时间&#xff1a;50毫秒 ~ 1000毫秒 吞吐量&#xff1a;1000万每天&#xff0c;2000万每天 ......10亿每天 TPS&a…

java面试题基本部分

一、Java 基础 1.Java常见基本类型如下 整数类&#xff08;byte、short、int、long&#xff09; 浮点类&#xff08;float、double&#xff09; 字符类&#xff08;char&#xff09; 布尔型&#xff08;boolean&#xff09;大小&#xff1a; boolean(8位 1字节) byte(8位 1字…

【数据结构与算法】Manacher算法

Manacher算法 https://github.com/SongJianHIT/DataStructurs-Algorithm/tree/main/src/algorithms/manacher 基本介绍 Manacher 算法常用于 求一个字符串中的最长回文子串。如&#xff1a;abc123321def 的最长回文子串为 123321。 计算字符串的最长回文字串最简单的算法就是…

Lattice CrossLink-Nx LIFCL-40应用连载8:MIPI DSI接口驱动LCD显示器

作者&#xff1a;Hello&#xff0c;Panda 一、案例需求 使用LIFCL-40-7MG121I FPGA的MIPI DSI硬核接口驱动7寸LCD显示器&#xff1a; &#xff08;1&#xff09;显示器&#xff1a;7寸&#xff0c;1024*600横屏&#xff0c;60Hz&#xff1b; &#xff08;2&#xff09;MIPI物…