JDBC综合练习

文章目录

    • 1.需求
    • 2.环境搭建
    • 3.查询所有数据
    • 4.添加
    • 5.修改
    • 6.删除


在这里插入图片描述

1.需求

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

• 查询:查询所有数据

• 添加:添加品牌

• 修改:根据 id修改

• 删除:根据 id删除

2.环境搭建

•准备环境:1.创建项目 2.导入druid 和mysql驱动包 3.在src下面创建连接数据库的配置文件

Ø数据库表 tb_brand

Ø实体类 Brand

Ø测试用例

在这里插入图片描述

3.查询所有数据

1.获取Connection

2.定义SQL:select *** from tb_brand;

3.获取 PreparedStatement对象

4.设置参数:不需要

5.执行SQL

6.处理结果:List

7.释放资源

 @Test
    public void query() throws Exception{
        Properties p = new Properties();
        p.load(new FileInputStream("src\\druid.properties"));
        DataSource ds = DruidDataSourceFactory.createDataSource(p);
        //获取Connection
        Connection conn = ds.getConnection();
        //定义SQL:select * from tb_brand;
        String sql = "select * from tb_brand";
        //获取 PreparedStatement对象
        PreparedStatement pst = conn.prepareStatement(sql);
        //设置参数:不需要
        //执行SQL
        ResultSet rs = pst.executeQuery();
        //处理结果:List<Brand>
        ArrayList<Brand> list = 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);
            list.add(brand);
        }
        System.out.println("list = " + list);
        //释放资源
        rs.close();
        pst.close();
        conn.close();
    }

4.添加

@Test
    public void add() throws Exception{
        Properties p = new Properties();
        p.load(new FileInputStream("src\\druid.properties"));
        DataSource ds = DruidDataSourceFactory.createDataSource(p);
        //获取Connection
        Connection conn = ds.getConnection();
        String sql = "insert into tb_brand values(null,?,?,?,?,?)";
        //获取 PreparedStatement对象
        PreparedStatement pst = conn.prepareStatement(sql);
        pst.setString(1,"苹果");
        pst.setString(2,"apple");
        pst.setInt(3,1);
        pst.setString(4,"贵");
        pst.setInt(5,0);
        int count = pst.executeUpdate();
        System.out.println("count = " + count);
        //释放资源
        pst.close();
        conn.close();
    }

5.修改

 @Test
    public void update() throws Exception{
        Properties p = new Properties();
        p.load(new FileInputStream("src\\druid.properties"));
        DataSource ds = DruidDataSourceFactory.createDataSource(p);
        //获取Connection
        Connection conn = ds.getConnection();
        String sql = "update tb_brand set brand_name  = ?,company_name= ?,ordered= ?,description = ?,status= ? where id = ?";
        //获取 PreparedStatement对象
        PreparedStatement pst = conn.prepareStatement(sql);
        pst.setString(1,"OPPO");
        pst.setString(2,"OPPO");
        pst.setInt(3,1);
        pst.setString(4,"贵");
        pst.setInt(5,0);
        pst.setInt(6,3);
        int count = pst.executeUpdate();
        System.out.println("count = " + count);
        //释放资源
        pst.close();
        conn.close();
    }

6.删除

 @Test
    public void delete() throws Exception{
        Properties p = new Properties();
        p.load(new FileInputStream("src\\druid.properties"));
        DataSource ds = DruidDataSourceFactory.createDataSource(p);
        //获取Connection
        Connection conn = ds.getConnection();
        String sql = "delete from tb_brand where id = ?";
        //获取 PreparedStatement对象
        PreparedStatement pst = conn.prepareStatement(sql);
        pst.setInt(1,4);
        int count = pst.executeUpdate();
        System.out.println("count = " + count);
        //释放资源
        pst.close();
        conn.close();
    }

至此 JDBC的综合练习就完了… 增删改查就是 这么简单!~



在这里插入图片描述



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/481150.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CISP 4.2备考之《物理与网络通信安全》知识点总结

文章目录 第 1 节 物理与环境安全第 2 节 网络安全基础第 3 节 网络安全技术与设备第 1 部分 防火墙第 2 部分 入侵检测系统第 3 部分 其他安全产品 第 4 节 网络安全设计规划 第 1 节 物理与环境安全 1.场地选择 1.1 场地选择:自然条件、社会条件、其他条件。1.2 抗震和承重&…

Set系列集合:Hashset、LinkedHashset、TreeSet --java学习笔记

Set系列集合 Set系列集合特点:无序、不重复、无索引添加数据的顺序和获取出的数据顺序不一致;Hashset:无序、不重复、无索引LinkedHashset:有序、不重复、无索引TreeSet:排序、不重复、无索引 代码演示&#xff1a; import java.util.*;public class ListTest5 {public stati…

c语言食堂就餐排队问题290行

定制魏&#xff1a;QTWZPW&#xff0c;获取更多源码等 目录 题目 数据结构 函数设计 结构设计 总结 效果截图 ​ 主函数代码 题目 设计一个程序来模拟食堂就餐排队问题&#xff0c;通过输入学生人数和面包数量&#xff0c;计算有多少学生能够吃到午餐。 数据结构 该…

【链表】Leetcode 2. 两数相加【中等】

两数相加 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c; 并且每个节点只能存储 一位 数字。请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外&#xff0c;这两个数都不…

Python核心编程 --- 高级数据类型

Python核心编程 — 高级数据类型 字符串 列表 元组 字典 1.序列 序列&#xff1a;一组按顺序排列的数据集合。 在Python中存在三种内置的序列类型&#xff1a;字符串、列表、元组 优点&#xff1a;可支持索引和切片操作 特点&#xff1a;第一个正索引为0&#xff0c;指…

web学习笔记(四十三)ajax

目录 1.相关基础概念 1.1客户端与服务器 1.2URL地址 1.3 客户端和服务器端通信的过程 1.4 一个URL地址放入浏览器&#xff0c;到页面渲染发生了什么事情 1.5 数据 1.6资源的请求方式 2.Ajax 2.1什么是Ajax 2.2 jQuery 中的Ajax 2.2.1 $.get()的语法 2.2.2$.post()…

Spring Cloud Alibaba Sentinel 使用详解

一、Sentinel 介绍 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点&#xff0c;从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景&#xff1a; Sentinel 承接了阿里巴…

Linux-Arm环境下配置编译qt-everywhere及交叉编译环境

前言 最近在搞交叉编译的事&#xff0c;手上拿了个同事的香橙派玩交叉编译&#xff0c;现在来到了第一步&#xff0c;就是先在arm上配置qt的开发环境。当然了Qt没有直接提供qt on arm&#xff0c;而是需要自行在arm环境下编译一个qt环境出来&#xff0c;所以这里需要使用到qt提…

集简云新增“文本语音转换”功能,实现智能语音交互

为丰富人工智能领域的应用集成&#xff0c;为用户提供更便捷和智能化的信息获取和视觉创作方式&#xff0c;本周集简云上线了内置应用—文本语音转换。目前支持OpenAI TTS和TTS HD模型&#xff0c;实现文本语音高效智能转换&#xff0c;也可根据你的产品或品牌创建独特的神经网…

lvgl 窗口 windows lv_port_win_visual_studio 版本 已解决

不知道的东西&#xff0c;不知道lvgl窗口。一切从未知开始 lv_port_win_visual_studio 主分支 对应的分支 v7版本更新git submodule update --init --recursive同步 lvgl代码随后打开 visualSudio 打开.sln 文件 编译 release模式 允许 一切正常代码部分

Windows Insiders WSLg Linux GUI App 支持尝鲜

2021 年 4 月 21 日&#xff0c;微软在 Developer Blogs 发布了 Windows 预览版 WSL&#xff08;Windows Linux 子系统&#xff09; 对 Linux GUI App 的支持的公告&#x1f517;&#xff0c;碰巧&#x1f600;我最近重装了波电脑&#xff0c;系统换成了 Windows Insiders&…

【数据结构刷题专题】——二分查找

二分查找 二分查找模板题&#xff1a;704. 二分查找 二分查找前提&#xff1a; 有序数组数组中无重复元素 左闭右闭&#xff1a; class Solution { public:int search(vector<int>& nums, int target) {int left 0;int right nums.size() - 1;while (left <…

​CC-EasyCommonInput: 基于uni-app原生input组件封装的增强实用输入框组件

CC-EasyCommonInput&#xff1a;基于uni-app原生input组件封装的增强实用输入框组件 摘要&#xff1a; 在前端开发中&#xff0c;输入框&#xff08;Input&#xff09;是一个常见的UI组件&#xff0c;用于获取用户输入的数据。然而&#xff0c;为了满足不同的业务需求和用户体验…

LED显示屏视频播放器的8大功能

随着中国LED显示屏企业的规模发展和产品技术的不断创新&#xff0c;LED显示屏在各个领域中的应用得到了广泛推广。然而&#xff0c;LED显示屏的出色表现离不开LED视频播放器这一关键设备的支持。下面将介绍LED视频播放器的8大功能&#xff0c;以及它们如何提升LED显示屏的显像效…

VSCode最强插件合集,助你代码开发效率翻倍!

大家好&#xff0c;我是宝哥。 今天给大家推荐14个VSCode靠前的编程辅助插件&#xff0c;它们可以帮助你提高代码编写、调试、阅读和管理效率。 1.ESLint 简介&#xff1a;用于检查JavaScript代码的语法和风格错误。 功能特色&#xff1a;支持多种规则&#xff0c;可以自定义规…

stdlib.h中的 atoi 函数

记忆方法&#xff1a; atoi可以理解为 arr to int 表示将char类型的字符串转换成int类型的整数。例如"1234"转换成 1234。 传入值传出值&#xff1a;int atoi(char* arr); 将arr里面的字符型数字转变成整形数字。函数开始会跳过除了0到9的数字字符&#xff0c;…

STM32初识3

中断和事件 什么是中断&#xff1f; 中断是指计算机运行过程中&#xff0c;出现某些意外情况需主机干预时&#xff0c;机器能自动停止正在运行的 程序并转入处理新情况的程序&#xff0c;处理完毕后又返回原被暂停的程序继续运行。 什么是EXTI&#xff1f; …

【办公类-16-07-08】“2023下学期 大班户外游戏2(做成打印用的的贴墙版样式--A4横版撑满)”(python 排班表系列)

背景需求&#xff1a; 运用代码做出了中班每个班级用的户外游戏&#xff08;新版&#xff09;的表格&#xff08;包含有场地的贴墙版和无场地的贴周计划版&#xff09; 【办公类-16-07-07】“2023下学期 大班户外游戏2&#xff08;有场地和无场地版&#xff0c;每天不同场地&…

部署prometheus 监控k8s集群

目录 1、主机清单 2、拉取镜像 3、服务安装 4、安装prometheus-operator 5、查看custom metrics api 6、获取prometheus端口 7、将 alertmanager-main 、grafana、prometheus-k8s的端口暴露出来 8、再次查看prometheus端口 9、浏览器访问IP&#xff1a;31940 部署k8集群…

【Linux】线程的概念{虚拟地址堆区细分/缺页中断/页/初识线程/创建线程/优缺点}

文章目录 1.前导知识1.1 虚拟地址空间的堆区1.2 缺页中断1.3ELF文件格式1.4页/页框/页帧/页表/MMU1.5虚拟地址到物理地址 2.初识Linux线程2.1之前所学的进程2.2线程的引入2.3如何理解线程2.4如何理解轻量级进程 3.创建线程3.1pthread_create()函数3.2程序测试3.3Makefile怎么写…