JDBC练习-增删改查

package com.czie.example;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;

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

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.CheckedOutputStream;


/**
 * 品牌数据的增删改查操作
 */
public class BrandTest {
    /**
     * 查询所有
     * 1. SQL:select * from tb_brand;
     * 2. 参数:不需要
     * 3. 结果:List<Brand>
     */

    @Test
    public void testSelectAll() throws Exception {
//        String url="jdbc:mysql://localhost:3306/lps?useSSL=false&useServerPrepStmts=true";
//        String username="root";
//        String password="1234";
//        Connection conn = DriverManager.getConnection(url,username,password);

        //3. 加载配置文件
        //1.导入jar包
        //2.定义配置文件

        //3. 加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("../jdbc-demo/src/druid.properties"));
        //4. 获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //5. 获取数据库连接 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集合之中
        List<Brand> brands = new ArrayList<>();

        Brand brand = null;
        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();
        conn.close();
        pstmt.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 url="jdbc:mysql://localhost:3306/lps?useSSL=false&useServerPrepStmts=true";
//        String username="root";
//        String password="1234";
//        Connection conn = DriverManager.getConnection(url,username,password);

        //3. 加载配置文件
        //1.导入jar包
        //2.定义配置文件

        // 接收页面提交的参数
        String brandName = "香飘飘";
        String companyName = "香飘飘";
        int ordered = 1;
        String description = "绕地球一圈";
        int status = 1;

        //3. 加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("../jdbc-demo/src/druid.properties"));
        //4. 获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //5. 获取数据库连接 Connection
        Connection conn = dataSource.getConnection();

        //定义sql语句
        String sql = "insert into tb_brand (brand_name, company_name, ordered, description, status)\n" +
                "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);
        System.out.println(count>0);


        //释放资源

        conn.close();
        pstmt.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 url="jdbc:mysql://localhost:3306/lps?useSSL=false&useServerPrepStmts=true";
//        String username="root";
//        String password="1234";
//        Connection conn = DriverManager.getConnection(url,username,password);

        //3. 加载配置文件
        //1.导入jar包
        //2.定义配置文件

        // 接收页面提交的参数
        String brandName = "香飘飘";
        String companyName = "香飘飘";
        int ordered = 1000;
        String description = "绕地球三圈";
        int status = 1;
        int id = 4;

        //3. 加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("../jdbc-demo/src/druid.properties"));
        //4. 获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //5. 获取数据库连接 Connection
        Connection conn = dataSource.getConnection();

        //定义sql语句
        String sql = "update tb_brand 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);
        System.out.println(count>0);


        //释放资源

        conn.close();
        pstmt.close();

    }

    /**
     * 删除
     * 1. SQL:

     delete from tb_brand where id = ?

     * 2. 参数:需要,id
     * 3. 结果:boolean
     */
    @Test
    public void testDeleteByID() throws Exception {
//        String url="jdbc:mysql://localhost:3306/lps?useSSL=false&useServerPrepStmts=true";
//        String username="root";
//        String password="1234";
//        Connection conn = DriverManager.getConnection(url,username,password);

        //3. 加载配置文件
        //1.导入jar包
        //2.定义配置文件

        // 接收页面提交的参数
        int id = 4;

        //3. 加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("../jdbc-demo/src/druid.properties"));
        //4. 获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //5. 获取数据库连接 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);
        System.out.println(count>0);


        //释放资源

        conn.close();
        pstmt.close();

    }
}
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///lps?useSSL=false&useServerPrepStmts=true
username=root
password=1234
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000
-- 删除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);


SELECT * FROM tb_brand;

 

 

 

posted @ 2022-05-17 15:13  刘品水  阅读(26)  评论(0编辑  收藏  举报