JDBC知识【JDBC练习】第五章

举报
爱吃豆的土豆 发表于 2022/09/25 03:48:39 2022/09/25
【摘要】 目录 💂 个人主页: 爱吃豆的土豆 🌈欢迎加入社区,福利多多哦!土豆社区 🤟 版权: 本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 🏆人必有所执,方能有所成! 1,JDBC练习 1.1:需求 1.2:案例...

目录

  • 💂 个人主页: 爱吃豆的土豆
  • 🌈欢迎加入社区,福利多多哦!土豆社区

  • 🤟 版权: 本文由【爱吃豆的土豆】原创、在CSDN首发、需要转载请联系博主
  • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
  • 🏆人必有所执,方能有所成!

1,JDBC练习

1.1:需求

1.2:案例实现

1.2.1:环境准备

1.2.2:查询所有

1.2.3:添加数据

1.2.4:修改数据

1.2.5:删除数据


1,JDBC练习

1.1:需求

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

  • 查询:查询所有数据

  • 添加:添加品牌

  • 修改:根据id修改

  • 删除:根据id删除

1.2:案例实现

1.2.1:环境准备

数据库表 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  


  
  1. /**
  2. * 品牌
  3. * alt + 鼠标左键:整列编辑
  4. * 在实体类中,基本数据类型建议使用其对应的包装类型
  5. */
  6. public class Brand {
  7. // id 主键
  8. private Integer id;
  9. // 品牌名称
  10. private String brandName;
  11. // 企业名称
  12. private String companyName;
  13. // 排序字段
  14. private Integer ordered;
  15. // 描述信息
  16. private String description;
  17. // 状态:0:禁用 1:启用
  18. private Integer status;
  19. public Integer getId() {
  20. return id;
  21. }
  22. public void setId(Integer id) {
  23. this.id = id;
  24. }
  25. public String getBrandName() {
  26. return brandName;
  27. }
  28. public void setBrandName(String brandName) {
  29. this.brandName = brandName;
  30. }
  31. public String getCompanyName() {
  32. return companyName;
  33. }
  34. public void setCompanyName(String companyName) {
  35. this.companyName = companyName;
  36. }
  37. public Integer getOrdered() {
  38. return ordered;
  39. }
  40. public void setOrdered(Integer ordered) {
  41. this.ordered = ordered;
  42. }
  43. public String getDescription() {
  44. return description;
  45. }
  46. public void setDescription(String description) {
  47. this.description = description;
  48. }
  49. public Integer getStatus() {
  50. return status;
  51. }
  52. public void setStatus(Integer status) {
  53. this.status = status;
  54. }
  55. @Override
  56. public String toString() {
  57. return "Brand{" +
  58. "id=" + id +
  59. ", brandName='" + brandName + '\'' +
  60. ", companyName='" + companyName + '\'' +
  61. ", ordered=" + ordered +
  62. ", description='" + description + '\'' +
  63. ", status=" + status +
  64. '}';
  65. }
  66. }

1.2.2:查询所有


  
  1. /**
  2. * 查询所有
  3. * 1. SQL:select * from tb_brand;
  4. * 2. 参数:不需要
  5. * 3. 结果:List<Brand>
  6. */
  7. @Test
  8. public void testSelectAll() throws Exception {
  9. //1. 获取Connection
  10. //3. 加载配置文件
  11. Properties prop = new Properties();
  12. prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
  13. //4. 获取连接池对象
  14. DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
  15. //5. 获取数据库连接 Connection
  16. Connection conn = dataSource.getConnection();
  17. //2. 定义SQL
  18. String sql = "select * from tb_brand;";
  19. //3. 获取pstmt对象
  20. PreparedStatement pstmt = conn.prepareStatement(sql);
  21. //4. 设置参数
  22. //5. 执行SQL
  23. ResultSet rs = pstmt.executeQuery();
  24. //6. 处理结果 List<Brand> 封装Brand对象,装载List集合
  25. Brand brand = null;
  26. List<Brand> brands = new ArrayList<>();
  27. while (rs.next()){
  28. //获取数据
  29. int id = rs.getInt("id");
  30. String brandName = rs.getString("brand_name");
  31. String companyName = rs.getString("company_name");
  32. int ordered = rs.getInt("ordered");
  33. String description = rs.getString("description");
  34. int status = rs.getInt("status");
  35. //封装Brand对象
  36. brand = new Brand();
  37. brand.setId(id);
  38. brand.setBrandName(brandName);
  39. brand.setCompanyName(companyName);
  40. brand.setOrdered(ordered);
  41. brand.setDescription(description);
  42. brand.setStatus(status);
  43. //装载集合
  44. brands.add(brand);
  45. }
  46. System.out.println(brands);
  47. //7. 释放资源
  48. rs.close();
  49. pstmt.close();
  50. conn.close();
  51. }

1.2.3:添加数据


  
  1. /**
  2. * 添加
  3. * 1. SQL:insert into tb_brand(brand_name, company_name, ordered, description, status) values(?,?,?,?,?);
  4. * 2. 参数:需要,除了id之外的所有参数信息
  5. * 3. 结果:boolean
  6. */
  7. @Test
  8. public void testAdd() throws Exception {
  9. // 接收页面提交的参数
  10. String brandName = "香飘飘";
  11. String companyName = "香飘飘";
  12. int ordered = 1;
  13. String description = "绕地球一圈";
  14. int status = 1;
  15. //1. 获取Connection
  16. //3. 加载配置文件
  17. Properties prop = new Properties();
  18. prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
  19. //4. 获取连接池对象
  20. DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
  21. //5. 获取数据库连接 Connection
  22. Connection conn = dataSource.getConnection();
  23. //2. 定义SQL
  24. String sql = "insert into tb_brand(brand_name, company_name, ordered, description, status) values(?,?,?,?,?);";
  25. //3. 获取pstmt对象
  26. PreparedStatement pstmt = conn.prepareStatement(sql);
  27. //4. 设置参数
  28. pstmt.setString(1,brandName);
  29. pstmt.setString(2,companyName);
  30. pstmt.setInt(3,ordered);
  31. pstmt.setString(4,description);
  32. pstmt.setInt(5,status);
  33. //5. 执行SQL
  34. int count = pstmt.executeUpdate(); // 影响的行数
  35. //6. 处理结果
  36. System.out.println(count > 0);
  37. //7. 释放资源
  38. pstmt.close();
  39. conn.close();
  40. }

1.2.4:修改数据


  
  1. /**
  2. * 修改
  3. * 1. SQL:
  4. update tb_brand
  5. set brand_name = ?,
  6. company_name= ?,
  7. ordered = ?,
  8. description = ?,
  9. status = ?
  10. where id = ?
  11. * 2. 参数:需要,所有数据
  12. * 3. 结果:boolean
  13. */
  14. @Test
  15. public void testUpdate() throws Exception {
  16. // 接收页面提交的参数
  17. String brandName = "香飘飘";
  18. String companyName = "香飘飘";
  19. int ordered = 1000;
  20. String description = "绕地球三圈";
  21. int status = 1;
  22. int id = 4;
  23. //1. 获取Connection
  24. //3. 加载配置文件
  25. Properties prop = new Properties();
  26. prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
  27. //4. 获取连接池对象
  28. DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
  29. //5. 获取数据库连接 Connection
  30. Connection conn = dataSource.getConnection();
  31. //2. 定义SQL
  32. String sql = " update tb_brand\n" +
  33. " set brand_name = ?,\n" +
  34. " company_name= ?,\n" +
  35. " ordered = ?,\n" +
  36. " description = ?,\n" +
  37. " status = ?\n" +
  38. " where id = ?";
  39. //3. 获取pstmt对象
  40. PreparedStatement pstmt = conn.prepareStatement(sql);
  41. //4. 设置参数
  42. pstmt.setString(1,brandName);
  43. pstmt.setString(2,companyName);
  44. pstmt.setInt(3,ordered);
  45. pstmt.setString(4,description);
  46. pstmt.setInt(5,status);
  47. pstmt.setInt(6,id);
  48. //5. 执行SQL
  49. int count = pstmt.executeUpdate(); // 影响的行数
  50. //6. 处理结果
  51. System.out.println(count > 0);
  52. //7. 释放资源
  53. pstmt.close();
  54. conn.close();
  55. }

1.2.5:删除数据


  
  1. /**
  2. * 删除
  3. * 1. SQL:
  4. delete from tb_brand where id = ?
  5. * 2. 参数:需要,id
  6. * 3. 结果:boolean
  7. */
  8. @Test
  9. public void testDeleteById() throws Exception {
  10. // 接收页面提交的参数
  11. int id = 4;
  12. //1. 获取Connection
  13. //3. 加载配置文件
  14. Properties prop = new Properties();
  15. prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
  16. //4. 获取连接池对象
  17. DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
  18. //5. 获取数据库连接 Connection
  19. Connection conn = dataSource.getConnection();
  20. //2. 定义SQL
  21. String sql = " delete from tb_brand where id = ?";
  22. //3. 获取pstmt对象
  23. PreparedStatement pstmt = conn.prepareStatement(sql);
  24. //4. 设置参数
  25. pstmt.setInt(1,id);
  26. //5. 执行SQL
  27. int count = pstmt.executeUpdate(); // 影响的行数
  28. //6. 处理结果
  29. System.out.println(count > 0);
  30. //7. 释放资源
  31. pstmt.close();
  32. conn.close();
  33. }

文章来源: qianxu.blog.csdn.net,作者:爱吃豆的土豆,版权归原作者所有,如需转载,请联系作者。

原文链接:qianxu.blog.csdn.net/article/details/126490684

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。