查询:查询所有数据
添加:添加品牌
修改:根据id修改
删除:根据id删除
准备环境:
数据库表tb-brand
实体类Brand
测试用例
drop table if exists tb_brand;
-- 创建tb_brand表
create table tb_brand
(
-- id 主键
id int primary key auto_increment,
-- 品牌名称
brand_name varchar(20),
-- 企业名称
company_name varchar(20),
-- 排序字段
ordered int,
-- 描述信息
description varchar(100),
-- 状态:0:禁用1启用
`status` int
)
character set utf8;
-- 添加数据
insert into tb_brand (brand_name, company_name, ordered, description, `status`)
values ('三只松鼠','三只松鼠股份有限公司',5,'好吃不上火',0),
('华为','华为技术有限公司',100,'华为致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界',1),
('小米','小米科技有限公司', 50,'are you ok', 1);
SELECT * FROM tb_brand;
整列编辑:alt+鼠标左键
快捷生成方法:alt+insert
在pojo包下创建一个类(pojo就是用来存放对象的Brand):
package com.pojo;
public class Brand {
// id 主键
private Integer id;
// 品牌名称
private String brand_name;
// 企业名称
private String company_name;
// 排序字段
private Integer ordered;
// 描述信息
private String description;
// 状态:0:禁用1启用
private Integer status;
public Integer getId() {
return id;
}
public void setId(Integer 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 Integer getOrdered() {
return ordered;
}
public void setOrdered(Integer ordered) {
this.ordered = ordered;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer 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 +
'}'+"\n";
}
}
因为status是状态0或1,如果我们弄int类型,默认值是0,而用Integer包装类默认值则是null,符合我们的要求。
新建一个example创建一个BrandText类
package com.example;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.pojo.Brand;
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;
/**
* 品牌数据的增删改查
*/
public class BrandText {
/**
* 查询所有的
* 1、SQL:select*from tb_brand
* 2、参数:不需要
* 3、结果:List<Brand>
*/
@Test
public void textSelectAll() throws Exception{
//1、获取Connection连接对象
Properties prop=new Properties();
//加载
prop.load(new FileInputStream("E://JDBC/jdbc-demo/src/druid.properties"));
//获取连接池对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
//获取数据库连接Connection
Connection conn = dataSource.getConnection();
//2、定义SQL
String sql="select*from tb_brand";
//3、获取pstmt对象
PreparedStatement pstmt=conn.prepareStatement(sql);
//4、设置参数
//5、执行sql
ResultSet rs=pstmt.executeQuery();
//6、处理结果List<Brand> 封装Brand对象,装载到List集合
//创建List集合对象
List<Brand> list=new ArrayList<>();
Brand brand=null;
while(rs.next()){
//获取数据
int id = rs.getInt("id");//快捷键ctrl+alt+v生成左边
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);
list.add(brand);
}
System.out.println(list);
//7、释放资源
rs.close();
pstmt.close();
conn.close();
}
}
/**
* 添加
* SQL:insert into tb_brand (brand_name, company_name, ordered, description, status)values(?,?,?,?,?);
* 参数是除了id之外的所有参数信息
* 结果:boolean
* @throws Exception
*/
@Test
public void textAdd()throws Exception{
/*
模拟页面提交的参数
品牌名称[]'
*/
String brand_name="阿里巴巴";
// 企业名称
String company_name="阿里巴巴";
// 排序字段
int ordered=1;
// 描述信息
String description="知名top企业";
// 状态:0:禁用1启用
int status=1;
//1、获取Connection连接对象
Properties prop=new Properties();
//加载
prop.load(new FileInputStream("E://JDBC/jdbc-demo/src/druid.properties"));
//获取连接池对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
//获取数据库连接Connection
Connection conn = dataSource.getConnection();
//2、定义SQL
String sql="insert into tb_brand (brand_name, company_name, ordered, description, status)values(?,?,?,?,?)";
//3、获取pstmt对象
PreparedStatement pstmt=conn.prepareStatement(sql);
//4、设置参数
pstmt.setString(1, brand_name);//ctrl+b快速复制
pstmt.setString(2, company_name);
pstmt.setInt(3, ordered);
pstmt.setString(4, description);
pstmt.setInt(5, status);
//5、执行sql
int count = pstmt.executeUpdate();
System.out.println(count>0);
//7、释放资源
pstmt.close();
conn.close();
}
我们运行之后发查询数据库发现乱码了,此时说明编码不一致,只需要在配置文件druid.properties中加入:
characterEncoding=utf8
加完之后运行:
@Test
public void textUpdate()throws Exception{
/*
模拟页面提交的参数
品牌名称[]'
*/
String brand_name="一本正经";
// 企业名称
String company_name="一本";
// 排序字段
int ordered=666;
// 描述信息
String description="心心比心";
// 状态:0:禁用1启用
int status=1;
int id=3;
//1、获取Connection连接对象
Properties prop=new Properties();
//加载
prop.load(new FileInputStream("E://JDBC/jdbc-demo/src/druid.properties"));
//获取连接池对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
//获取数据库连接Connection
Connection conn = dataSource.getConnection();
//2、定义SQL
String sql="update tb_brand set brand_name=?,company_name=?,ordered=?,description=?,status=? where id=?";
//3、获取pstmt对象
PreparedStatement pstmt=conn.prepareStatement(sql);
//4、设置参数
pstmt.setString(1, brand_name);//ctrl+b快速复制
pstmt.setString(2, company_name);
pstmt.setInt(3, ordered);
pstmt.setString(4, description);
pstmt.setInt(5, status);
pstmt.setInt(6, id);
//5、执行sql
int count = pstmt.executeUpdate();
System.out.println(count>0);
//7、释放资源
pstmt.close();
conn.close();
}
** 数据库中的数据变化:**
/**
* 删除数据的sql为delete from 表名 where 删除条件
* @throws Exception
*/
@Test
public void textDelete()throws Exception{
//1、获取Connection连接对象
Properties prop=new Properties();
//加载
prop.load(new FileInputStream("E://JDBC/jdbc-demo/src/druid.properties"));
//获取连接池对象
DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
//获取数据库连接Connection
Connection conn = dataSource.getConnection();
//2、定义SQL
String sql="delete from tb_brand where id=3";
//3、获取pstmt对象
PreparedStatement pstmt=conn.prepareStatement(sql);
//5、执行sql
int count = pstmt.executeUpdate();
System.out.println("删除"+(count>0));
//7、释放资源
pstmt.close();
conn.close();
}
数据库对比图;
后面也可以通过前端回传数据到后端接收来使用数据
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_60719453/article/details/122848505
内容来源于网络,如有侵权,请联系作者删除!