Jdbc配置文件连接mysql8.0——通过拼接字符串进行批量增删改操作

news2024/11/24 15:44:05

目录

一、基类BaseDao

二、对dog表的批量增删改操作

(一)Dog类

(二)DogDao接口

(三)DogDaoImpl实现类

1.批量新增

2.批量删除

3.批量修改

(四)Test测试

1.新增

2.删除

3.修改

三、对master表进行批量增删改

(一)Master类

(二)MasterDao接口

(三)MasterDaoImpl实现类

1.批量新增

2.批量删除

3.批量修改

(四)Test测试

1.新增

2.删除

3.修改


一、基类BaseDao

package nj.zb.kb21.dao;

import nj.zb.kb21.dao3.ConnectionPoolImpl;
import nj.zb.kb21.utils.C3p0Util;
import nj.zb.kb21.utils.DbConfig;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * 加载properties文件,实例化Connection对象,释放资源,执行公共方法
 */
public class BaseDao {
    private static String driver;
    private static String url;
    private static String user;
    private static String pwd;

    static {
        Properties properties = new Properties();
        InputStream inputStream =          BaseDao.class.getClassLoader().getResourceAsStream("database.properties");
        try {
            properties.load(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

        driver = properties.getProperty("mysqldriver");
        url = properties.getProperty("mysqlurl");
        user = properties.getProperty("mysqluser");
        pwd = properties.getProperty("mysqlpwd");
        System.out.println(driver);
        System.out.println(url);
        System.out.println(user);
        System.out.println(pwd);
    }

    public Connection getConnection(){
        Connection connection = null;
        try {
            Class.forName(driver);
            connection = DriverManager.getConnection(url, user, pwd);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    public void close(PreparedStatement preparedStatement, Connection connection, ResultSet resultSet){
        try {
            if(null != preparedStatement){
                preparedStatement.close();
            }
            if(null != connection){
                connection.close();
            }
            if(null != resultSet){
                resultSet.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void close(PreparedStatement preparedStatement, Connection connection){
        try {
            if(null != preparedStatement){
                preparedStatement.close();
            }
            if(null != connection){
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public void close(Connection connection){
        try {
            if(null != connection){
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public int executeUpdate(String sqlStr,Object... params){
        Connection connection = this.getConnection();
        PreparedStatement preparedStatement = null;
        int num = -1;
        try {
            preparedStatement = connection.prepareStatement(sqlStr);
            if(null != params){
                for (int i = 0;i < params.length;i++){
                    preparedStatement.setObject(i+1,params[i]);
                }
            }
            num = preparedStatement.executeUpdate();
        }catch (SQLException e) {
            e.printStackTrace();
        }finally {
            this.close(preparedStatement,connection);
        }
        return num;
    }

    public static void main(String[] args) {
        BaseDao baseDao = new BaseDao();
        Connection connection = baseDao.getConnection();
        System.out.println(connection+"连接成功!");
        System.out.println("over");
    }
}

二、对dog表的批量增删改操作

(一)Dog类

package nj.zb.kb21.pojo;

import java.util.Date;
import java.util.List;

public class Dog {
    // 数据库中的每一个字段映射为java类
    // name,health,love,
    private Integer id;
    private String name;
    private Integer health;
    private Integer love;
    private String strain;
    private Date lytime;
    private List<Master> master;// 当前狗狗对象有过的主人信息    一对多

    public List<Master> getMaster() {
        return master;
    }

    public void setMaster(List<Master> master) {
        this.master = master;
    }

    public Dog() {
    }

    public Dog(Integer id, String name, Integer health, Integer love, String strain, Date lytime) {
        this.id = id;
        this.name = name;
        this.health = health;
        this.love = love;
        this.strain = strain;
        this.lytime = lytime;
    }

    public Dog(String name, Integer health, Integer love, String strain) {
        this.name = name;
        this.health = health;
        this.love = love;
        this.strain = strain;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", health=" + health +
                ", love=" + love +
                ", strain='" + strain + '\'' +
                ", lytime=" + lytime +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getHealth() {
        return health;
    }

    public void setHealth(Integer health) {
        this.health = health;
    }

    public Integer getLove() {
        return love;
    }

    public void setLove(Integer love) {
        this.love = love;
    }

    public String getStrain() {
        return strain;
    }

    public void setStrain(String strain) {
        this.strain = strain;
    }

    public Date getLytime() {
        return lytime;
    }

    public void setLytime(Date lytime) {
        this.lytime = lytime;
    }
}

(二)DogDao接口

package nj.zb.kb21.dao;

import nj.zb.kb21.pojo.Dog;
import java.util.List;

public interface DogDao {
    /**
     *
     * @param dogs 要新增的狗狗集合
     * @return
     */
    Integer batchSaveDog(List<Dog> dogs);

    /**
     *
     * @param ids 要删除的狗狗id集合
     * @return
     */
    Integer batchDelDog(List<Integer> ids);

    /**
     *
     * @param dogs 要批量修改的狗狗集合
     * @return
     */
    Integer batchUpdateDog(List<Dog> dogs);

}

(三)DogDaoImpl实现类

1.批量新增

package nj.zb.kb21.dao;

import nj.zb.kb21.pojo.Dog;
import nj.zb.kb21.pojo.Master;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class DogDaoImpl extends BaseDao implements DogDao{
// 批量新增
    @Override
    public Integer batchSaveDog(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()),";
        }
        System.out.println(sql);
        sql = sql.substring(0,sql.length()-1);
        int num = super.executeUpdate(sql);
        return num;
    }
}

2.批量删除

    // 批量删除
    @Override
    public Integer batchDelDogById(List<Integer> ids) {
        String sql = "delete from dog where id in (";
        for (Integer idss :
                ids) {
            sql += idss+",";
        }
        sql = sql.substring(0,sql.length()-1);
        sql +=");";
        System.out.println(sql);
        int num = super.executeUpdate(sql);
        System.out.println("根据id批量删除成功!"+num);
        return num;
    }

3.批量修改

// 批量修改
    @Override
    public Integer batchUpdateDog(List<Dog> dogs) {
//        String sql = "update dog set name = n1,health = 20,love = 30 where id = 1";
        String sql = "";
        int num = 0;
        for (Dog dog :
                dogs
        ) {
            sql = "update dog set";
            if(dog.getName()!=null&dog.getName()!=""){
                sql += " name='"+dog.getName()+"',";
            }
            if(dog.getHealth()!=null){
                sql += " health="+dog.getHealth()+",";
            }
            if(dog.getLove()!=null){
                sql += " love="+dog.getLove()+",";
            }
            if(dog.getStrain()!=null&dog.getStrain()!=""){
                sql += " strain='"+dog.getStrain()+"',";
            }
            sql = sql.substring(0,sql.length()-1)+" where id="+dog.getId()+";";
            System.out.println(sql);
            num += super.executeUpdate(sql);
        }
        return num;
    }

(四)Test测试

1.新增

    @Test
    public void testBatchSaveDog(){
        DogDaoImpl dogDao = new DogDaoImpl();
        Dog dog1 = new Dog("a1", 100, 100, "t1");
        Dog dog2 = new Dog("b1", 100, 90, "t2");
        Dog dog3 = new Dog("c1", 100, 80, "t3");
        ArrayList<Dog> dogs = new ArrayList<>();
        dogs.add(dog1);
        dogs.add(dog2);
        dogs.add(dog3);
        dogDao.batchSaveDog(dogs);
    }

运行结果

2.删除

    @Test
    public void testBatchDelDog(){
        DogDaoImpl dogDao = new DogDaoImpl();
        ArrayList<Integer> ids = new ArrayList<>();
        ids.add(2);
        ids.add(3);
        ids.add(7);
        ids.add(8);
        dogDao.batchDelDogById(ids);
    }

3.修改

    @Test
    public void testBatchUpdateDog(){
        DogDaoImpl dogDao = new DogDaoImpl();
        Dog dog1 = new Dog();
        dog1.setId(54);
        dog1.setName("www");
        dog1.setHealth(40);

        Dog dog2 = new Dog();
        dog2.setId(55);
        dog2.setName("eee");

        Dog dog3 = new Dog();
        dog3.setId(56);
        dog3.setLove(77);
        dog3.setStrain("哈士奇");

        ArrayList<Dog> dogs = new ArrayList<>();
        dogs.add(dog1);
        dogs.add(dog2);
        dogs.add(dog3);
        Integer integer = dogDao.batchUpdateDog(dogs);
        System.out.println(integer);
    }

运行结果 

三、对master表进行批量增删改

(一)Master类

package nj.zb.kb21.pojo;

public class Master {
    private Integer pid;
    private String name;
    private Integer age;
    private String gender;
    private Integer yearnum;
    private Integer did;
    private Dog dog;

    public Master(String name, Integer age, String gender, Integer yearnum, Integer did) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.yearnum = yearnum;
        this.did = did;
    }

    public Master(Integer pid, String name, Integer age, String gender, Integer yearnum, Integer did, Dog dog) {
        this.pid = pid;
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.yearnum = yearnum;
        this.did = did;
        this.dog = dog;
    }

    public Master() {
    }

    @Override
    public String toString() {
        return "Master{" +
                "pid=" + pid +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                ", yearnum=" + yearnum +
                ", did=" + did +
                ", dog=" + dog +
                '}';
    }

    public Integer getPid() {
        return pid;
    }

    public void setPid(Integer pid) {
        this.pid = pid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Integer getYearnum() {
        return yearnum;
    }

    public void setYearnum(Integer yearnum) {
        this.yearnum = yearnum;
    }

    public Integer getDid() {
        return did;
    }

    public void setDid(Integer did) {
        this.did = did;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }
}

(二)MasterDao接口

package nj.zb.kb21.dao;

import nj.zb.kb21.pojo.Master;
import java.util.List;

public interface MasterDao {
  
    Integer batchSaveMaster(List<Master> masters);

    Integer batchDelMasterById(List<Integer> ids);

    Integer batchUpdateMaster(List<Master> masters);
}

(三)MasterDaoImpl实现类

1.批量新增

package nj.zb.kb21.dao;

import nj.zb.kb21.pojo.Dog;
import nj.zb.kb21.pojo.Master;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;

public class MasterDaoImpl extends BaseDao implements MasterDao{
    @Override
    public Integer batchSaveMaster(List<Master> masters) {
        String sql = "insert into master(name,age,gender,yearnum,did) values";
        for (Master master :
                masters) {
            sql += "('"+master.getName()+"',"+master.getAge()+",'"+master.getGender()+"',"+master.getYearnum()+","+master.getDid()+"),";
        }
        sql = sql.substring(0,sql.length()-1);
        System.out.println(sql);
        int num = super.executeUpdate(sql);
        System.out.println("批量新增成功"+num);
        return num;
    }
}

2.批量删除

    @Override
    public Integer batchDelMasterById(List<Integer> ids) {
        String sql = "delete from master where pid in (";
        for (Integer idss :
                ids) {
            sql += idss+",";
        }
        sql = sql.substring(0,sql.length()-1);
        sql +=");";
        System.out.println(sql);
        int num = super.executeUpdate(sql);
        System.out.println("根据pid批量删除成功!"+num);
        return num;
    }

3.批量修改

    @Override
    public Integer batchUpdateMaster(List<Master> masters) {
        String sql = "";
        int num = 0;
        for (Master master :
                masters) {
            sql = "update master set";
            if(master.getName()!=null&master.getName()!=""){
                sql += " name='"+master.getName()+"',";
            }
            if(master.getAge()!=null){
                sql += " age="+master.getAge()+",";
            }
            if(master.getGender()!=null&master.getGender()!=""){
                sql += " gender='"+master.getGender()+"',";
            }
            if(master.getYearnum()!=null){
                sql += " yearnum="+master.getYearnum()+",";
            }
            if(master.getDid()!=null){
                sql += " did="+master.getDid()+",";
            }
            sql = sql.substring(0,sql.length()-1)+" where pid="+master.getPid()+";";
            System.out.println(sql);
            num += super.executeUpdate(sql);
        }
        System.out.println("更新成功!");
        return num;
    }

(四)Test测试

1.新增

    @Test
    public void testBatchSaveMaster(){
        MasterDaoImpl masterDao = new MasterDaoImpl();
        Master master1 = new Master("m1", 20, "男", 2, 3);
        Master master2 = new Master("m2", 20, "男", 2, 3);
        Master master3 = new Master("m3", 20, "男", 2, 3);
        ArrayList<Master> masters = new ArrayList<>();
        masters.add(master1);
        masters.add(master2);
        masters.add(master3);
        masterDao.batchSaveMaster(masters);
    }

运行结果

2.删除

  @Test
    public void testBatchDelMaster(){
        MasterDaoImpl masterDao = new MasterDaoImpl();
        ArrayList<Integer> ids = new ArrayList<>();
        ids.add(10);
        ids.add(11);
        ids.add(12);
        masterDao.batchDelMasterById(ids);
    }

3.修改

    @Test
    public void testBatchUpdateMaster(){
        MasterDaoImpl masterDao = new MasterDaoImpl();
        Master master1 = new Master();
        master1.setPid(13);
        master1.setName("name1");
        master1.setYearnum(10);

        Master master2 = new Master();
        master2.setPid(14);
        master2.setName("name2");
        master2.setGender("女");

        Master master3 = new Master();
        master3.setPid(15);
        master3.setName("name3");
        master3.setDid(60);

        ArrayList<Master> masters = new ArrayList<>();
        masters.add(master1);
        masters.add(master2);
        masters.add(master3);

        Integer integer = masterDao.batchUpdateMaster(masters);
        System.out.println(integer);
    }

运行结果

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

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

相关文章

RK3588平台开发系列讲解(内核调试篇)oops分析

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、oops简介二、oops分析2.1、实验代码2.2、oops信息2.3、oops分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢当系统内核发生kernel panic的时候,系统会打印出oops信息,本篇主要介绍如何根据oops定位问…

2022/1/6总结

今天学习了KMP算法。 KMP算法 这是一个字符串查找的算法&#xff0c;我们之前学习的字符串查找都是暴力穷举&#xff0c;然而这个效率太低&#xff0c;于是有三位大佬发明了线性的KMP算法。 算法说难不难&#xff0c;说简单也不简单。 算法的核心思想是找到最长的相等的前…

Struts2框架之Action配置

Struts2框架之Action配置Action配置1、访问Action的三种方式1.1、method属性访问1.2、Action动态方法调用1.3、通配符调用2、配置默认的ActionAction配置 Action控制器在Struts2框架中至关重要&#xff0c;主要作用如下&#xff1a; 封装工作单元数据转移的场所返回结果字符串…

(黑马C++)L07 多态

一、多态的基本概念 多态是面向对象程序设计语言中除数据抽象和继承之外的第三个基本特征。 多态&#xff1a;父类的引用或者指针指向子类对象 C支持编译时多态&#xff08;静态多态&#xff09;和运行时多态&#xff08;动态多态&#xff09;&#xff0c;运算符重载和函数重…

纷享销客CRM让科顺营销人更容易呼唤到“炮火”

希望让听得见“炮声”的人&#xff0c;更容易呼唤到“炮火”。对于在一线做营销的人而言&#xff0c;他们就是听到“炮声”的人。让一线的人员听得到“炮声”也就是销售线索、商机&#xff0c;能呼唤到“炮火”也就是呼唤到他们需要的资源。这恐怕是所有营销人都希望达到的境界…

ubuntu Ad-Hoc组网通信

目录 WIFI通信的多种组网方式 1、AP模式 2、Ad-hoc模式 ubuntu18配置ad-hoc模式 WIFI通信的多种组网方式 1、AP模式 最常用的模式&#xff0c;需要一个节点&#xff08;一般是路由器&#xff09;作为AP&#xff0c;其他节点连接到这个AP产生的wifi网络。通信拓扑是星形&a…

11_6、Java集合之Map接口的使用

一、引入Map与Collection并列存在。用于保存具有映射关系的数据:key-value &#xff08;双列集合框架&#xff09;&#xff0c;Map 中的 key 和 value 都可以是任何引用类型的数据 。Map 中的 key 用Set来存放&#xff0c;不允许重复&#xff0c;即同一个 Map 对象所对应 的类&…

在rhel6系统部署iscsi远程存储

文章目录一 需求二 环境准备三 服务端配置3.1 添加硬盘3.2 安装软件3.3 编写配置文件3.4 启动服务3.5 检查配置信息四 客户端配置4.1 安装软件包4.2 启动服务4.3 发现目标4.4 登陆目标4.5 实现开机自动挂载五 对部署进行测试一 需求 1&#xff09;首先在服务端添加一块10G的硬…

实验二十二 配置访问控制列表AGL

实验二十二 配置访问控制列表AGL一、 ACL基础概念 1、访问控制列表根据源地址、目标地址、源端口或目标端口等协议信息对数据包进行过滤&#xff0c; 从而达到访问控制的目的 。可以在路由器、三层交换机等设备上使用 &#xff0c;目前部分新二层交换 机也支持ACL。 2、ACL由编…

十、k8s DashBoard

文章目录1 部署Dashboard2 使用DashBoard之前在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实&#xff0c;为了提供更丰富的用户体验&#xff0c;kubernetes还开发了一个基于web的用户界面&#xff08;Dashboard&#xff09;。用户可以使用Dashboard部署容…

超级浏览器的技术原理,超级浏览器的浏览器指纹是什么?

浏览器指纹是超级浏览器的识别信息&#xff0c;网站可以通过这些信息来识别用户&#xff0c;判断用户的唯一性。常见的浏览器指纹有IP地址、浏览器所在地区、时区&#xff1b;用户代理&#xff08;User Agent&#xff09;相关的操作系统及版本、CPU 类型、浏览器及版本、浏览器…

吴恩达《机器学习》——PCA降维

PCA降维1. 主成分分析1.1 数据降维动机1.2 PCA降维目标问题分析2. PCA数学原理分析2.1 求协方差矩阵的碎碎念2.2 PCA实现方法3. Python实现3.1 进行人脸数据压缩数据集、源文件可以在Github项目中获得 链接: https://github.com/Raymond-Yang-2001/AndrewNg-Machine-Learing-Ho…

一些实用的办公工具分享给你

ABBYY FineReader 这是一个可以转换PDF格式的图片文字识别软件&#xff0c;下载之后可以免费试用七天&#xff0c;或者选择去它的网站上传PDF进行识别转换&#xff0c;一天最多可以转换10次&#xff0c;且一次只能转换3个页面。 【操作方法】 打开软件&#xff0c;点击“图像…

(day3)自学Java——面向对象

非原创&#xff0c;为方便自己后期复习 目录 1.类和对象 2.封装 3.就近原则和this关键字 4.构造方法 5.标准的javabean类 6.三种情况的对象内存图 7.基本数据类型和引用数据类型 8.this的内存原理 9.面向对象综合训练 (1)文字版格斗游戏 (2)两个对象数组练习 (3)对…

产品上新|语音识别+主题抽取,Magic Data多人会议数据集助您打造领先智能会议系统

2020年以来&#xff0c;新冠加快了线下向线上搬迁的速度&#xff0c;使得线上办公、在线教育、远程会议得到飞速普及和发展。艾媒咨询数据显示&#xff0c;2021年中国视频会议行业市场规模达148.2亿元。各类视频会议产品价格较低、操作便捷高效&#xff0c;普及率越来越高&…

vsftp开启登录,上传,下载,删除等操作审计日志

vsftp开启登录&#xff0c;上传&#xff0c;下载&#xff0c;删除等操作审计日志 背景 今天业务告知说有人把前天下午和昨天一天的ftp上面的附件被人删除了&#xff0c;首先我是非常的惊讶&#xff0c;居然会发生这种事&#xff0c;但是好在这个ftp不是我们负责的&#xff0c;…

驱动之设备模型

1. 起源与新方案 1.1 起源 仅devfs&#xff0c;导致开发不方便以及一些功能难以支持 热插拔不支持一些针对所有设备的同意操作&#xff08;如电源管理&#xff09;不能自动mknod用户查看不了设备信息设备信息硬编码&#xff0c;导致驱动代码通用性差&#xff0c;即没有分离设…

终章:学习路线

说明 该文章来源于徒弟lu2ker转载至此处&#xff0c;更多文章可参考&#xff1a;https://github.com/lu2ker/ 文章目录说明一些废话成果路线第一阶段要点第二阶段要点第三阶段要点第四阶段要点最后一些废话 截至这篇文章前已经有150star了&#xff0c;虽然比不上大佬们K级的量…

【链表】leetcode203.移除链表元素(C/C++/Java/Js)

leetcode203.移除链表元素1 题目2 思路 (两种方式&#xff09;2.1 在原来链表上进行删除2.2 设置一个虚拟头结点删除3 代码3.1 C &#xff08;两种方式&#xff09;3.2 C版本&#xff08;两种方式&#xff09;3.3 Java版本&#xff08;两种方式&#xff09;3.4 JavaScript版本4…

Vue的组件、组件的创建、data、methods

一、组件 组件是vue的重要的特征之一&#xff0c;可以扩展html的功能&#xff0c;也可以封装代码实现重复使用。 二、组件的创建 1. 非脚手架方式下创建 ​ 第一步&#xff1a;使用Vue.extend创建组件 ​ 第二步&#xff1a;使用Vue.component注册组件 ​ …