笔记四:JDBC练习


需求

完成商品品牌数据的增删改查操作

  • 查询:查询所有数据
  • 添加:添加品牌
  • 修改:根据id修改
  • 删除:根据id删除

案例实现

环境准备

  • 创建数据库表 tb_brand
-- 删除tb_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
);
-- 添加数据
insert into tb_brand (brand_name, company_name, ordered, description, status)
values ('三只松鼠', '三只松鼠股份有限公司', 5, '好吃不上火', 0),
       ('华为', '华为技术有限公司', 100, '华为致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1);
  • 在pojo包下实现实体类 Brand
public class Brand {
    private Integer id;               // id 主键
    private String brandName;         // 品牌名称
    private String companyName;       // 企业名称
    private Integer ordered;          // 排序字段
    private String description;       // 描述信息
    private Integer status;           // 状态:0:禁用 1:启用

    public Brand() {
    }

    public Brand(Integer id, String brandName, String companyName, Integer ordered, String description, Integer status) {
        this.id = id;
        this.brandName = brandName;
        this.companyName = companyName;
        this.ordered = ordered;
        this.description = description;
        this.status = status;
    }

    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 +
                '}';
    }
}

查询所有

/**
     * 查询参数
     * 1.SQL:select * from tb_brand;
     * 2.参数:不需要
     * 3.结果:List<Brand>
     */
@Test
public void testSelectAll() throws Exception {
    // 加载配置文件
    Properties prop = new Properties();
    prop.load(new FileInputStream("src/druid.properties"));
    // 获取连接池对象
    DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    // 获取数据库连接 Connection
    Connection conn = dataSource.getConnection();

    // 定义sql
    String sql = "select * from tb_brand;";
    
    // 获取pstmt对象
    PreparedStatement pstmt = conn.prepareStatement(sql);
    // 执行sql
    ResultSet rs = pstmt.executeQuery();
    
    // 处理结果 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(id, brandName, companyName, ordered, description, status);

        // 装载集合
        brands.add(brand);
    }
    System.out.println(brands);

    // 释放资源
    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;

    // 加载配置文件
    Properties prop = new Properties();
    prop.load(new FileInputStream("src/druid.properties"));
    // 获取连接池对象
    DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    // 获取数据库连接 Connection
    Connection conn = dataSource.getConnection();

    // 定义sql
    String sql = "insert into tb_brand(brand_name, company_name, ordered, description, status) values(?,?,?,?,?);";

    // 获取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);

    // 执行sql
    int count = pstmt.executeUpdate(); // 影响的行数
    // 处理结果
    System.out.println(count > 0);

    // 释放资源
    pstmt.close();
    conn.close();
}

修改数据

/**
     * 修改
     * 1.SQL:

        update tb_brand
               set brand_name  = ?,
               company_name= ?,
               ordered     = ?,
               description = ?,
               status      = ?
           where id = ?

     * 2.参数:需要,所有信息
     * 3.结果:boolean
     */
@Test
public void testUpdate() throws Exception {
    // 接收页面提交的参数
    String brandName = "香飘飘";
    String companyName = "香飘飘";
    int ordered = 1000;
    String description = "绕地球三圈";
    int status = 1;
    int id = 4;

    // 加载配置文件
    Properties prop = new Properties();
    prop.load(new FileInputStream("src/druid.properties"));
    // 获取连接池对象
    DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    // 获取数据库连接 Connection
    Connection conn = dataSource.getConnection();

    // 定义sql
    String sql = " update tb_brand\n" +
        "         set brand_name  = ?,\n" +
        "         company_name= ?,\n" +
        "         ordered     = ?,\n" +
        "         description = ?,\n" +
        "         status      = ?\n" +
        "     where id = ?";

    // 获取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);

    // 执行sql
    int count = pstmt.executeUpdate(); // 影响的行数
    // 处理结果
    System.out.println(count > 0);

    // 释放资源
    pstmt.close();
    conn.close();
}

删除数据

/**
     * 删除
     * 1.SQL: delete from tb_brand where id = ?
     * 2.参数:需要,id
     * 3.结果:boolean
     */
@Test
public void testDelete() throws Exception {
    // 接收页面提交的参数
    int id = 4;

    // 加载配置文件
    Properties prop = new Properties();
    prop.load(new FileInputStream("src/druid.properties"));
    // 获取连接池对象
    DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    // 获取数据库连接 Connection
    Connection conn = dataSource.getConnection();

    // 定义sql
    String sql = " delete from tb_brand where id = ?";

    // 获取pstmt对象
    PreparedStatement pstmt = conn.prepareStatement(sql);

    // 设置参数
    pstmt.setInt(1, id);

    // 执行sql
    int count = pstmt.executeUpdate(); // 影响的行数
    // 处理结果
    System.out.println(count > 0);

    // 释放资源
    pstmt.close();
    conn.close();
}

文章作者: 不才叶某
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 不才叶某 !
评论
  目录