import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.junit.Test;
import javax.sql.DataSource;
import javax.swing.*;
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 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 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集合
Brand b =null;
List<Brand> bs =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");
//封装对象
b =new Brand();
b.setId(id);
b.setBrandName(brandName);
b.setCompanyName(companyName);
b.setOrdered(ordered);
b.setDescription(description);
b.setStatus(status);
//装载集合
bs.add(b);
}
System.out.println(bs);
//释放资源
rs.close();
pstmt.close();
conn.close();
}
/*
*添加
* 1:SQL:insert into tb_brand (brand_name, company_name , ordered , description , status)values (?,?,?,?,?)
* 2:参数 需要(除了id之外的所有参数)
* 3:结果 boolean
*/
@Test
public void testAdd()throws Exception{
String brandName ="香飘飘";
String companyName ="香飘飘";
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();
//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,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);
//释放资源
pstmt.close();
conn.close();
}
/*
* 修改 update tb_brand set brand_name=?, company_name=?, ordered=?,description=?,status=? where id=?
* 需要参数 所有的数据
* 返回值 boolean
* */
@Test
public void testModify()throws Exception{
String brandName ="优乐美";
String companyName ="优乐美";
int ordered = 1;
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();
//2.定义SQL语句
String sql =" update tb_brand set brand_name=?, company_name=?, ordered=?,description=?,status=? where id=?";
//3.获取pstmt对象
PreparedStatement pstmt = conn.prepareStatement(sql);
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);
//释放资源
pstmt.close();
conn.close();
}
/*
* 删除
* SQL delete from tbl_brand where id=?
* 参数 需要 id
* 结果 boolean*/
@Test
public void testDelete()throws Exception{
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();
//2.定义SQL语句
String sql ="delete from tb_brand where id=?";
//3.获取pstmt对象
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,id);
//5.执行sql
int count = pstmt.executeUpdate();//影响的行数
//6.处理结果
System.out.println(count>0);
//释放资源
pstmt.close();
conn.close();
}
}
brand类
/*
* Alt+鼠标左键 整列编辑*/
public class Brand {
private Integer id;
// id主键
private String brandName;
// 品牌名称
private String companyName;
// 排序字段
private Integer ordered;
// 描述信息
private String description;
// 状态 0 :禁用 1:启用
private Integer status ;//这里我们使用包装类是因为基本数据类型默认值0 会影响
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
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 +
", brandName='" + brandName + '\'' +
", companyName='" + companyName + '\'' +
", ordered='" + ordered + '\'' +
", description='" + description + '\'' +
", status=" + status +
'}';
}
}
数据库代码:
drop table if exists tb_brand ;
-- 创建tb_brand表
create table tb_brand
(
id int primary key auto_increment,
-- id主键
brand_name varchar(20),
-- 品牌名称
company_name varchar(20),
-- 排序字段
ordered int,
-- 描述信息
description varchar(100),
-- 状态 0 :禁用 1: 启用
status int
);
-- 添加数据
insert into tb_brand (brand_name, company_name, ordered, description, status)
value ('三只松鼠', '三只松鼠股份有限公司', 5, '好吃不上火', 0),
('华为', '华为技术有限公司', 100, '华为致力于把数字世界带给每个人,每个家庭,每个组织,构建万物互联的智能世界', 1),
( '小米', '小米技术有限公司', 50, 'are you ok?', 1);