当前位置: 首页 > news >正文

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*/@Testpublic void testSelectALL() throws Exception {//获取连接String url = "jdbc:mysql:///day02";String username = "root";String password = "wwh030705";Connection conn = DriverManager.getConnection(url, username, password);//定义sqlString sql = "select * from tb_brand";//获取pstmt对象PreparedStatement pstmt = conn.prepareStatement(sql);//设置参数//执行sqlResultSet 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*/@Testpublic 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);//定义sqlString 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);//执行sqlint 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*/@Testpublic 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);//定义sqlString 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);//执行sqlint 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*/@Testpublic 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);//定义sqlString sql = "delete from tb_brand where id = ?";//获取pstmt对象PreparedStatement pstmt = conn.prepareStatement(sql);//设置参数pstmt.setInt(1,id);//执行sqlint count = pstmt.executeUpdate();//影响行数//处理结果System.out.println(count > 0);//释放资源pstmt.close();conn.close();}
http://www.gsyq.cn/news/36246.html

相关文章:

  • 2-SAT学习笔记
  • Java:历久弥坚的编程基石,在变革中永葆活力
  • Ant构建项目 - 沐春风
  • revit api创建风管
  • Java的实战与思想:从代码到架构的工程之美
  • 代码大全2 第四五章
  • 代码大全2阅读2
  • Java的深层逻辑与未来生态延伸
  • Java:从跨平台梦想到生态帝国的编程语言
  • 8、认识for循环
  • node.js安装搭建
  • 102302156 李子贤 数据采集第二次作业
  • 2025年市场上工业线束生产厂家排名前十
  • SVD分解及其应用
  • 完整教程:【C语言数据结构】第2章:线性表(1)--定义ADT
  • 【论道】前端动画总结
  • Mac版4K Video Downloader Plus Pro v1.5.2安装教程|dmg文件下载后拖拽到应用程序教程
  • 把coarse粗调音高转换成频率的数学公式
  • 10.31 —— (VP)2023icpc济南
  • Java流程控制——break,continue,goto
  • 读《代码大全2》第三部分有感
  • 20232324 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • CF1168C And Reachability
  • 《代码大全》读后感:从 “功能实现者” 到 “责任承担者” 的思维跃迁
  • 企业网站建设服务商:2025年最佳选择指南与行业洞察
  • Linux 交叉编译(toolchain) ARM 版 lib pcap.so 库
  • Codeforces Pinely Round 5(div.1 + div.2) A~D题解
  • revit api事件
  • 《我测了5个排版工具后,终于把时间还给了内容创作》
  • EDKII工程结构介绍