Druid简单实现数据库的增删改查方式
作者:墨笔之风
这篇文章主要介绍了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;
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。