练习:完成商品的增、删、改、查操作

以下代码的操作均忘记释放连接对象了 忘记释放资源了 记得释放

 

配置文件准备: 

数据库准备:

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);

 品牌类:

package com.itheima.pojo;

/**
 *  品牌类
 *
 *  ctrl + r : 把从数据库复制过来的属性 统一成  / /
 *  alt + 鼠标左键  : 整列编辑(可进行同时修改 删除 操作)
 *  属性类型 需要和数据库中的类型一致   (属性过多的时候可以先统一写成String类型 再修改)
 *
 *  细节:属性名用驼峰 更美观
 *
 *  注意细节: 在实体类中,基本数据类型建议使用其对应的包装类型(包装类是对象 默认值null)    (防止给我们业务带来疑惑)
 */
public class Brand {
    // id 主键
    private Integer id;
    // 品牌名称
    private String brandName;
    // 企业名称
    private String companyNam;
    // 排序字段
    private Integer ordered;
    // 描述信息
    private String description;
    // 状态: 0:禁用 1:启动
    private Integer status;     // 这里int类型我们尽量用包装类型 因为int类型当我们这个属性不赋值的时候
                            // 默认值为0    而我们业务中 0 :代表禁用(会给我们的业务带来疑惑)

    // getter and setter 方法

    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 getCompanyNam() {
        return companyNam;
    }

    public void setCompanyNam(String companyNam) {
        this.companyNam = companyNam;
    }

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

    // toString 方法
    @Override
    public String toString() {
        return "Brand{" +
                "id=" + id +
                ", brandName='" + brandName + '\'' +
                ", companyNam='" + companyNam + '\'' +
                ", ordered='" + ordered + '\'' +
                ", description='" + description + '\'' +
                ", status=" + status +
                '}';
    }
}

查操作:

package com.itheima.example;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.itheima.pojo.Brand;
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 BrandSelectAll {
    public static void main(String[] args) throws Exception {

        /**
         *  查询所有数据库中的数据
         *  SQL:select * from tb_brand;
         *  结果: 把数据库中的信息 通过封装给Brand对象 然后存放到List集合当中
         */
        // 第一步:获取conn对象 (利用数据库连接池操作)

        // 3.加载配置文件
        Properties prop =new Properties();
        prop.load(new FileInputStream("jdbc-demo/src/druid.properties")); // 把读出来的properties文件 加载到prop集合中
        // 4.获取数据库连接池对象 conn
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
        // 5.获取数据库连接    Connection
        Connection conn =dataSource.getConnection();

        // 第二步:定义SQL语句
        String sql ="select * from tb_brand";

        // 第三步:获取执行sql的对象 (防注入)
        PreparedStatement pt =conn.prepareStatement(sql);
        // 第四步:设置参数

        // 第五步:执行SQL
        ResultSet rs =pt.executeQuery();

        // 第六步:处理结果 :把数据库中的信息 通过封装给Brand对象 然后存放到List集合当中

        List<Brand> list =new ArrayList<>();
        while (rs.next()){
            // 获取数据 封装到Brand对象当中
            Brand brand =new Brand();
            brand.setId(rs.getInt("id"));
            brand.setBrandName(rs.getString("brand_name"));
            brand.setCompanyNam(rs.getString("company_name"));
            brand.setOrdered(rs.getInt("ordered"));
            brand.setDescription(rs.getString("description"));
            brand.setStatus(rs.getInt("status"));

            // 存放到List集合当中
            list.add(brand);
        }
        System.out.println(list);

    }
}

 增操作:

package com.itheima.example;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Properties;

public class BrandAdd {
    public static void main(String[] args) throws Exception {

        /**
         *  添加数据
         *  SQL:insert into tb_brand(brand_name,company_name,ordered,description,status) values
         *  (?,?,?,?,?);
         *  注意:这里id主键不能让用户填写,因为主键在数据库中是自增的 用户不知道添加几 万一重复就错了
         *
         *  返回结果如何封装:返回给用户端(前端) boolean 让前端进行渲染
         */

        // 接收用户在页面上提交的参数 (模拟)
        String brandName = "香飘飘奶茶";     // 细节: java中尽量用驼峰命名
        String companyName ="香飘飘有限公司";
        int ordered =1;
        String description ="香飘飘奶茶女人的收割机";
        int status =1;  // 0:代表禁用 1: 代表启用



        // 第一步:获取conn对象 (利用数据库连接池操作)

        // 3.加载配置文件
        Properties prop =new Properties();
        prop.load(new FileInputStream("jdbc-demo/src/druid.properties")); // 把读出来的properties文件 加载到prop集合中
        // 4.获取数据库连接池对象 conn
        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) values(?,?,?,?,?)";

        // 第三步:获取执行sql的对象 (防注入)
        PreparedStatement pt =conn.prepareStatement(sql);
        // 第四步:设置参数
        pt.setString(1,brandName);
        pt.setString(2,companyName);
        pt.setInt(3,ordered);
        pt.setString(4,description);
        pt.setInt(5,status);

        // 第五步:执行SQL
        /**
         * 注意: 这里的SQL:是插入的语句 不是查找的语句 所以不能再用executeQuery了 这个方法是拿数据库中的数据的方法
         * 要用executeUpdate 判断数据库受影响的行数
         * 根据数据库受影响的行数 来判断数据是否添加成功与失败
         */
        int Count = pt.executeUpdate();
        // 第六步:处理结果
        System.out.println(Count > 0);  // 受影响行数大于0 说明插入数据成功    为0 说明失败

    }
}

 

 改操作:

package com.itheima.example;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Properties;

public class BrandUpdate {
    public static void main(String[] args) throws Exception {

        /**
         *  修改数据库中的数据 : 通过id进行数据修改
         *  SQL:update tb_brand set brand_name =?,company_name =?,ordered =?,description =?,status =?
         *  where id =?;
         *  结果: 返回boolean类型
         *
         *  */

        // 接收页面提交的参数
        String brandName = "蜜雪冰城";
        String companyName ="蜜雪冰城有限公司";
        int ordered =600;
        String description ="你爱我 我爱你 蜜雪冰城甜蜜蜜 ";
        int status =1;  // 0:代表禁用 1: 代表启用
        int id =4;



        // 第一步:获取conn对象 (利用数据库连接池操作)

        // 3.加载配置文件
        Properties prop =new Properties();
        prop.load(new FileInputStream("jdbc-demo/src/druid.properties")); // 把读出来的properties文件 加载到prop集合中
        // 4.获取数据库连接池对象 conn
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
        // 5.获取数据库连接    Connection
        Connection conn =dataSource.getConnection();

        // 第二步:定义SQL语句a
        String sql ="update tb_brand set brand_name =?,company_name =?,ordered =?,description =?,status =? where id =?";

        // 第三步:获取执行sql的对象 (防注入)
        PreparedStatement pt =conn.prepareStatement(sql);
        // 第四步:设置参数
        pt.setString(1,brandName);
        pt.setString(2,companyName);
        pt.setInt(3,ordered);
        pt.setString(4,description);
        pt.setInt(5,status);
        pt.setInt(6,id);


        // 第五步:执行SQL
        int Count =pt.executeUpdate();

        // 第六步:处理结果 : 判断影响的行数, 如果大于0 说明数据库当中数据受影响了 即返回true  为0时false
        System.out.println(Count >0);


    }
}

删操作:

package com.itheima.example;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.Properties;

public class BrandDel {
    public static void main(String[] args) throws Exception {

        /**
         *  删除数据库中的数据 : 通过id进行数据删除
         *  SQL:delete from tb_brand where id = ?;
         *
         *  结果: 返回boolean类型
         *
         *  */

        // 接收页面提交的参数    接收id即可 直接通过id删除数据
        int id =4;



        // 第一步:获取conn对象 (利用数据库连接池操作)

        // 3.加载配置文件
        Properties prop =new Properties();
        prop.load(new FileInputStream("jdbc-demo/src/druid.properties")); // 把读出来的properties文件 加载到prop集合中
        // 4.获取数据库连接池对象 conn
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
        // 5.获取数据库连接    Connection
        Connection conn =dataSource.getConnection();

        // 第二步:定义SQL语句a
        String sql ="delete from tb_brand where id = ?";

        // 第三步:获取执行sql的对象 (防注入)
        PreparedStatement pt =conn.prepareStatement(sql);
        // 第四步:设置参数
        pt.setInt(1,id);


        // 第五步:执行SQL
        int Count =pt.executeUpdate();

        // 第六步:处理结果 : 判断影响的行数, 如果大于0 说明数据库当中数据受影响了 即返回true  为0时false
        System.out.println(Count >0);


    }
}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值