Druid简单实现数据库的增删改查方式

 更新时间:2024年07月05日 09:13:06   作者:墨笔之风  
这篇文章主要介绍了Druid简单实现数据库的增删改查方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

druid的使用步骤

  • 1:导入相关的druid-jar包
  • 2:定义配置文件
  • 3:加载配置文件
  • 4:获取数据库连接池对象
  • 5:获取链接

具体实现

相关包可以网上下载哦::白/嫖/队

将jar包放到lib文件下:点击选择 add as Library;

创建一个Java文件,获取连接池与数据库的队应匹配

注:特别注意导入文件地址的问题发生,大多报错都是地址不匹配

package DruidExample;
/*
 * 品牌
 * alt+鼠标左键整列编辑
 * 鼠标选中 ctrl+ r全选 直接替换全部
 *Alt + insert 生成构造方法,和tostring方法
 * 在实体类型中,基本数据类型建议使用对应包装类型
 * */
public class Brand {
    //id 主键
    private int id;
    //品牌名称
    private String brand_name;
    //企业名称
    private String company_name;
    //排序字段
    private int ordered;
    //描述信息
    private String description;
    //状态:0:禁用  1:启用
    private int STATUS;

    public int getId() {
        return id;
    }

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

    public String getBrand_name() {
        return brand_name;
    }

    public void setBrand_name(String brand_name) {
        this.brand_name = brand_name;
    }

    public String getCompany_name() {
        return company_name;
    }

    public void setCompany_name(String company_name) {
        this.company_name = company_name;
    }

    public int getOrdered() {
        return ordered;
    }

    public void setOrdered(int ordered) {
        this.ordered = ordered;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public int getSTATUS() {
        return STATUS;
    }

    public void setSTATUS(int STATUS) {
        this.STATUS = STATUS;
    }

    @Override
    public String toString() {
        return "Brand{" +
                "id=" + id +
                ", brand_name='" + brand_name + '\'' +
                ", company_name='" + company_name + '\'' +
                ", ordered=" + ordered +
                ", description='" + description + '\'' +
                ", STATUS=" + STATUS +
                '}';
    }
}

将其中的文件进行编辑更改:druid.properties

druid.properties 配置更改

url=jdbc:mysql://127.0.0.1:3307/mydb?rewriteBatchedStatements=true
username=root
password=root
driverClassName=com.mysql.cj.jdbc.Driver
initialSize=10
maxActive=20
maxWait=1000
filters=wall

修改里面的相关内容与之匹配:

创建Java文件,生成构造方法和toString方法;

package DruidExample;
/*
 * 品牌
 * alt+鼠标左键整列编辑
 * 鼠标选中 ctrl+ r全选 直接替换全部
 *Alt + insert 生成构造方法,和tostring方法
 * 在实体类型中,基本数据类型建议使用对应包装类型
 * */
public class Brand {
    //id 主键
    private int id;
    //品牌名称
    private String brand_name;
    //企业名称
    private String company_name;
    //排序字段
    private int ordered;
    //描述信息
    private String description;
    //状态:0:禁用  1:启用
    private int STATUS;

    public int getId() {
        return id;
    }

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

    public String getBrand_name() {
        return brand_name;
    }

    public void setBrand_name(String brand_name) {
        this.brand_name = brand_name;
    }

    public String getCompany_name() {
        return company_name;
    }

    public void setCompany_name(String company_name) {
        this.company_name = company_name;
    }

    public int getOrdered() {
        return ordered;
    }

    public void setOrdered(int ordered) {
        this.ordered = ordered;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public int getSTATUS() {
        return STATUS;
    }

    public void setSTATUS(int STATUS) {
        this.STATUS = STATUS;
    }

    @Override
    public String toString() {
        return "Brand{" +
                "id=" + id +
                ", brand_name='" + brand_name + '\'' +
                ", company_name='" + company_name + '\'' +
                ", ordered=" + ordered +
                ", description='" + description + '\'' +
                ", STATUS=" + STATUS +
                '}';
    }
}





```java
package DruidExample;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.junit.Test;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
/*
* 品牌数据的增删改查功能
*1 获取Connection 连接
*2 定义sql语句:select * from tb_brand; 变化项
*3 获取PreparedStatement对象
*4 设置参数:不需要                      变化项
*5 执行sql
*6 处理结果:list<Brand>                变化项
*7 释放资源
* */
public class BrandTest {
**查询所有相关信息**
    /*
    * 查询所有功能的分析
    * 1.sql:select * from tb_brand;
    * 2.参数:不需要
    * 3.结果:List<Brand>
    * */
    @Test
    public  void  testSelectAll() throws Exception { //查询语句
        //1 获取连接的connection 对象
        // 加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("src/druid.properties"));
        // 获取连接池对象
        DataSource dataSource =  DruidDataSourceFactory.createDataSource(prop);
        //获取数据库链接 Connection
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
        //2 定义sql语句
        String sql = "select * from tb_brand";
        //3 获取pstmt 对象
        PreparedStatement pstmt = connection.prepareStatement(sql);
        //4 设置参数
        //5 执行sql
        ResultSet rs = pstmt.executeQuery();
        //6 处理结果List<Brand>封装Brand对象,装载到List集合当中去
        Brand brand = null;
        List<Brand> brands  = new ArrayList<>();
        while (rs.next()){
            //获取数据
           int id =  rs.getInt("id");
           String brandName =  rs.getString("brand_name");
           String companyName =  rs.getString("company_name");
           int ordered =  rs.getInt("ordered");
           String description =  rs.getString("description");
           int status =  rs.getInt("STATUS");
           //封装Brand对象
            brand = new Brand();
            brand.setId(id);
            brand.setBrand_name(brandName);
            brand.setCompany_name(companyName);
            brand.setOrdered(ordered);
            brand.setDescription(description);
            brand.setSTATUS(status);
            //装载集合
            brands.add(brand);
        }
        System.out.println(brands+"\n");//打印集合查看效果
    }
**向数据库添加相关操作**
/*
* 添加
* 1 sql :insert into tb_brand(brand_name,company_name,ordered,descript,status) value(?,?,?,?,?);
* 2 参数: 需要除iD之外的所有参数信息
* 3 结果 :boolean
* */
    @Test
    public  void  testAdd() throws Exception { //添加不需要id 由数据库主键自增自动生成
        //接收页面提交的参数 (模拟)
        String brandName = "8848钛晶手机";
        String companyName = "8848";
        int ordered = 1;
        String description = "成功人士的标配";
        int STATUS = 1;
        //1 获取连接的connection 对象
        // 加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("src/druid.properties"));
        // 获取连接池对象
        DataSource dataSource =  DruidDataSourceFactory.createDataSource(prop);
        //获取数据库链接 Connection
        Connection conn = dataSource.getConnection();
        System.out.println(conn);
        //2 定义sql语句
        String sql = "insert into tb_brand(brand_name,company_name,ordered,description,status) value(?,?,?,?,?);";
        //3 获取pstmt 对象
        PreparedStatement pstmt = conn.prepareStatement(sql);
        //4 设置参数
        pstmt.setString(1,brandName);
        pstmt.setString(2,companyName);
        pstmt.setInt(3,ordered);
        pstmt.setString(4,description);
        pstmt.setInt(5,STATUS);
        //5 执行sql
      int count =   pstmt.executeUpdate();//影响行数
        //6 处理结果
        System.out.println(count>0);//输出结果是boolean类型的值
        //7 释放资源
        pstmt.close();
        conn.close();
    }

**更新数据库信息**
    /*
    * 修改功能的实现 通过id进行修改
    * 1. sql : update tb_brand
    *          set brand_naem = ?,
    *          company_name = ?,
    *          ordered = ?,
    *          descript = ?,
    *          STATUS = ?,
    *          where id = ?
    *2.参数 : 需要 ,需要用到所有的数据
    *3.结果 :boolean类型
    * */
    @Test
    public  void  testUpdate() throws Exception { //添加不需要id 由数据库主键自增自动生成
        //接收页面提交的参数 (模拟)
        String brandName = "魅族经典";
        String companyName = "flyme你手中的信仰";
        int ordered = 1000;
        String description = "这是一种奢华,也是一种拥有";
        int status = 1;
        int id = 4;
        //1 获取连接的connection 对象
        // 加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("src/druid.properties"));
        // 获取连接池对象
        DataSource dataSource =  DruidDataSourceFactory.createDataSource(prop);
        //获取数据库链接 Connection
        Connection conn = dataSource.getConnection();
        System.out.println(conn);
        //2 定义sql语句
        String sql = "update tb_brand\n" +
                "        set  brand_name = ?,\n" +
                "         company_name  = ?,\n" +
                "         ordered       = ?,\n" +
                "         description   = ?,\n" +
                "          status       = ?\n"  +
                " where id = ?;";
        //3 获取pstmt 对象
        PreparedStatement pstmt = conn.prepareStatement(sql);
        //4 设置参数
        pstmt.setString(1,brandName);
        pstmt.setString(2,companyName);
        pstmt.setInt(3,ordered);
        pstmt.setString(4,description);
        pstmt.setInt(5,status);
        pstmt.setInt(6,id);
        //5 执行sql
        int count =   pstmt.executeUpdate();//影响行数
        //6 处理结果
        System.out.println(count>0);//输出结果是boolean类型的值
        //7 释放资源
        pstmt.close();
        conn.close();
    }
**删除数据库相关信息**
    /*
     * 删除功能的实现 通过id进行删除
     * 1. sql : delete from  tb_brand where id =4;
     *2.参数 : 需要 ,需要用到id参数
     *3.结果 :boolean类型
     * */
    @Test
    public  void  testDeleteId() throws Exception { //添加不需要id 由数据库主键自增自动生成
        //接收页面提交的参数 (模拟)
        int id = 3;
        //1 获取连接的connection 对象
        // 加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("src/druid.properties"));
        // 获取连接池对象
        DataSource dataSource =  DruidDataSourceFactory.createDataSource(prop);
        //获取数据库链接 Connection
        Connection conn = dataSource.getConnection();
        System.out.println(conn);
        //2 定义sql语句
        String sql = "delete from  tb_brand where id =?";
        //3 获取pstmt 对象
        PreparedStatement pstmt = conn.prepareStatement(sql);
        //4 设置参数
        pstmt.setInt(1,id);
        //5 执行sql
        int count =   pstmt.executeUpdate();//影响行数
        //6 处理结果
        System.out.println(count>0);//输出结果是boolean类型的值
        //7 释放资源
        pstmt.close();
        conn.close();
    }
}

用于测试的数据库数据

use mydb;
CREATE table tb_brand(
	id int PRIMARY KEY auto_increment,
	brand_name VARCHAR(20),
	company_name VARCHAR(20),
	ordered int,
	description VARCHAR(100),
	STATUS int
);
--添加数据
insert into tb_brand(brand_name,company_name,ordered,description,status) 
VALUE('苹果果','苹果果技术有限公司',500,'吃个苹果果解解渴',0),
('华为为','华为为技术有限公司',300,'华为为YYDS',1),
('小米米','小米米科技有限公司',200,'今天你发烧了吗!',1);
select * from tb_brand; 
UPDATE tb_brand set ordered = 200 where id=3;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot动态定时任务实现完整版

    SpringBoot动态定时任务实现完整版

    最近有幸要开发个动态定时任务,这里简单再梳理一下,下面这篇文章主要给大家介绍了关于SpringBoot动态定时任务实现的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Java上传文件到服务器端的方法

    Java上传文件到服务器端的方法

    这篇文章主要为大家详细介绍了Java上传文件到服务器端的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Spring MVC实现一次简单的CRUD示例

    Spring MVC实现一次简单的CRUD示例

    这篇文章主要介绍了Spring MVC实现一次简单的CRUD示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Eclipse运行android项目报错Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法

    Eclipse运行android项目报错Unable to build: the file dx.jar was not

    今天小编就为大家分享一篇关于Eclipse运行android项目报错Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • java微信小程序步数encryptedData和开放数据解密的实现

    java微信小程序步数encryptedData和开放数据解密的实现

    这篇文章主要介绍了java微信小程序步数encryptedData和开放数据解密的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • java MD5加密实现代码

    java MD5加密实现代码

    这篇文章主要为大家详细介绍了java MD5加密实现过程,为大家分享了MD5加密代码,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • java开发读取嵌套jar包中的文件

    java开发读取嵌套jar包中的文件

    这篇文章主要为大家介绍了java开发读取嵌套jar包中的文件方法示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Java继承子类的构造函数方式

    Java继承子类的构造函数方式

    这篇文章主要介绍了Java继承子类的构造函数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • SpringBoot测试junit遇到的坑及解决

    SpringBoot测试junit遇到的坑及解决

    这篇文章主要介绍了SpringBoot测试junit遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • SpringBoot快速整合SpringSecurity的详细步骤(新手都会!)

    SpringBoot快速整合SpringSecurity的详细步骤(新手都会!)

    日 Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型,他可以实现强大的Web安全控制,下面这篇文章主要给大家介绍了关于SpringBoot快速整合SpringSecurity的详细步骤,需要的朋友可以参考下
    2023-03-03

最新评论