当前位置: 首页 > 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.jsqmd.com/news/27882/

相关文章:

  • 2-SAT学习笔记
  • 打造自己的 Claude Code:LangGraph + MCP 搭建一个极简的 AI 编码助手
  • CSP-S 2023-2024 分析
  • 专栏目录
  • 代码大全2 第四五章
  • 程序员修炼之道:从小工到专家读后感1
  • 代码大全2阅读1
  • 代码大全2阅读2
  • 软件工程学习日志2025.10.30
  • BOE(京东方)“百堂故宫传统文化公益课”暨2025照亮成长路收官 推动“科技+教育+文化”可持续发展
  • Java的深层逻辑与未来生态延伸
  • 软件工程学习日志2025.10.31
  • Java:从跨平台梦想到生态帝国的编程语言
  • [KaibaMath]1016 关于数列与其子数列下标不等关系的证明
  • MySQL解析JSON格式字段并取出部分值的方式
  • 【详细介绍】一种基于斜二进制的序列树上数据结构
  • drm分析
  • 8、认识for循环
  • node.js安装搭建
  • 102302156 李子贤 数据采集第二次作业
  • 2025年储能线束生产厂家排名:众晟强电子领先
  • SVD分解及其应用
  • 2025年工业线束生产厂家排名前十强,东莞众晟强电子引领行业创新
  • 完整教程:【C语言数据结构】第2章:线性表(1)--定义ADT
  • 【论道】前端动画总结
  • 软件构建,藏在细节里的“工程思维”
  • 从“会编码”到“懂开发”,一场开发者的认知升级
  • Mac版4K Video Downloader Plus Pro v1.5.2安装教程|dmg文件下载后拖拽到应用程序教程
  • 把coarse粗调音高转换成频率的数学公式
  • 思科vManage漏洞分析:四漏洞链实现未授权远程代码执行