JDBC练习

image

  • 环境准备:
    • 数据库表 tb_brand
    • 实体类 Brand
    • 测试用例

查询所有数据

package com.itheima.example;

import com.itheima.pojo.Brand;
import org.junit.Test;

import java.sql.*;
import java.util.ArrayList;

/**
 * 品牌数据的增删改查操作
 */

public class BrandTest {
    /**
     * 查询所有
     * 1.SQL:select * from tb_brand;
     * 2.参数:不需要
     * 3.结果:List<Brand>
     * @throws Exception
     */

    @Test
    public void testSelectALL() throws Exception {
        //获取连接
        String url = "jdbc:mysql:///day02";
        String username = "root";
        String password = "wwh030705";
        Connection conn = DriverManager.getConnection(url, username, password);
        //定义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;
        ArrayList<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.setBrandName(brandName);
            brand.setCompanyName(companyName);
            brand.setOrdered(ordered);
            brand.setDescription(description);
            brand.setStatus(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

/**
     * 添加
     * 1.SQL:select * from tb_brand;
     * 2.参数:需要,除了id之外所有的参数
     * 3.结果:boolean
     * @throws Exception
     */

    @Test
    public void testSelectAdd() throws Exception {
        //接受页面提交的参数
        String brandName = "香飘飘";
        String companyName = "香飘飘";
        int ordered = 1;
        String description = "绕地球一圈";
        int status = 1;

        //获取连接
        String url = "jdbc:mysql:///day02";
        String username = "root";
        String password = "wwh030705";
        Connection conn = DriverManager.getConnection(url, username, password);
        //定义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. 是否需要参数?需要:Brand对象所有数据

  3. 返回结果如何封装?boolean

/**
     * 修改
     * 1.SQL:
     * update tb_brand
     * set brand_name = ?,
     * 		company_name = ?,
     * 		ordered = ?,
     * 		description = ?,
     * 		status = ?
     * where id = ?
     * 2.参数:需要,所有数据
     * 3.结果:boolean
     * @throws Exception
     */

    @Test
    public void testUpdate() throws Exception {
        //接受页面提交的参数
        String brandName = "香飘飘";
        String companyName = "香飘飘";
        int ordered = 1000;
        String description = "绕地球三圈";
        int status = 1;
        int id = 4;
        //获取连接
        String url = "jdbc:mysql:///day02";
        String username = "root";
        String password = "wwh030705";
        Connection conn = DriverManager.getConnection(url, username, password);
        //定义sql
        String sql = "update tb_brand set brand_name = ?,company_name = ?,ordered = ?,description = ?,status = ? where id = 4";
        //获取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语句

    delete from tb_brand where id = ?
    
  2. 是否需要参数?需要:id

  3. 返回结果如何封装?boolean

/**
     * 删除
     * 1.SQL:delete from tb_brand where id = ?
     * 2.参数:需要,id
     * 3.结果:boolean
     * @throws Exception
     */

    @Test
    public void testDelete() throws Exception {
        //接受页面提交的参数
        int id = 4;
        //获取连接
        String url = "jdbc:mysql:///day02";
        String username = "root";
        String password = "wwh030705";
        Connection conn = DriverManager.getConnection(url, username, password);
        //定义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();

    }
posted @ 2025-10-31 20:07  齐天大圣951  阅读(3)  评论(0)    收藏  举报