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

**

druid的使用步骤

**
1:导入相关的druid-jar包
2:定义配置文件
3:加载配置文件
4:获取数据库连接池对象
5:获取链接
在这里插入图片描述

具体实现:
相关包可以网上下载哦::白嫖队
将jar包放到lib文件下:点击选择 add as Library;
1,创建一个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 +
                '}';
    }
}

2:将其中的文件进行编辑更改: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;

有兴趣的小伙伴可以看一看哦^^………………

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我明白你的问题了。首先需要说明的是,我是一个语言模型,没有直接操作数据库的能力。但是,我可以为你介绍一下如何使用DBCP和Druid数据源来获取数据库连接对象,并提供一些增删改查任务的代码示例。 1. DBCP数据源 DBCP是Apache基金会下的一个开源项目,提供了一个数据库连接池的实现。使用DBCP数据源来获取数据库连接对象的步骤如下: (1)添加DBCP依赖 在maven项目中,需要在pom.xml文件中添加如下配置: ``` <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> ``` (2)配置数据库连接池参数 在代码中,需要配置数据库连接池的参数,包括数据库驱动、数据库URL、用户名、密码、最大连接数、最大空闲连接数等等。示例代码如下: ``` BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/test"); dataSource.setUsername("root"); dataSource.setPassword("password"); dataSource.setMaxActive(10); dataSource.setMaxIdle(5); ``` (3)获取数据库连接对象 使用连接池来获取数据库连接对象,示例代码如下: ``` Connection conn = dataSource.getConnection(); ``` (4)增删改查任务代码示例 以下是一个使用DBCP数据源来执行增删改查任务的代码示例: ``` // 插入一条数据 PreparedStatement ps = conn.prepareStatement("insert into user(name, age) values(?, ?)"); ps.setString(1, "张三"); ps.setInt(2, 20); ps.executeUpdate(); // 更新一条数据 ps = conn.prepareStatement("update user set age = ? where name = ?"); ps.setInt(1, 21); ps.setString(2, "张三"); ps.executeUpdate(); // 删除一条数据 ps = conn.prepareStatement("delete from user where name = ?"); ps.setString(1, "张三"); ps.executeUpdate(); // 查询数据 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from user"); while (rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println(name + " : " + age); } rs.close(); stmt.close(); ``` 2. Druid数据Druid是阿里巴巴出品的一个开源项目,提供了一个高性能的数据库连接池实现。使用Druid数据源来获取数据库连接对象的步骤如下: (1)添加Druid依赖 在maven项目中,需要在pom.xml文件中添加如下配置: ``` <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency> ``` (2)配置数据库连接池参数 在代码中,需要配置数据库连接池的参数,包括数据库驱动、数据库URL、用户名、密码、最大连接数、最大空闲连接数等等。示例代码如下: ``` DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/test"); dataSource.setUsername("root"); dataSource.setPassword("password"); dataSource.setMaxActive(10); dataSource.setMaxWait(60000); ``` (3)获取数据库连接对象 使用连接池来获取数据库连接对象,示例代码如下: ``` Connection conn = dataSource.getConnection(); ``` (4)增删改查任务代码示例 以下是一个使用Druid数据源来执行增删改查任务的代码示例: ``` // 插入一条数据 PreparedStatement ps = conn.prepareStatement("insert into user(name, age) values(?, ?)"); ps.setString(1, "张三"); ps.setInt(2, 20); ps.executeUpdate(); // 更新一条数据 ps = conn.prepareStatement("update user set age = ? where name = ?"); ps.setInt(1, 21); ps.setString(2, "张三"); ps.executeUpdate(); // 删除一条数据 ps = conn.prepareStatement("delete from user where name = ?"); ps.setString(1, "张三"); ps.executeUpdate(); // 查询数据 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from user"); while (rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println(name + " : " + age); } rs.close(); stmt.close(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨笔之风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值