前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

JDBC

作者头像
777nx
发布于 2023-05-02 06:09:16
发布于 2023-05-02 06:09:16
51400
代码可运行
举报
运行总次数:0
代码可运行

JDBC练习

1.需求

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

  • 查询:查询所有数据
  • 添加:添加品牌
  • 修改:根据id修改
  • 删除:根据id删除

2 案例实现

2.1 环境准备

数据库tb_brand

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 删除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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 品牌
 * alt + 鼠标左键:整列编辑
 * 在实体类中,基本数据类型建议使用其对应的包装类型
 */
public class Brand {
    // id 主键
    private Integer id;
    // 品牌名称
    private String brandName;
    // 企业名称
    private String companyName;
    // 排序字段
    private Integer ordered;
    // 描述信息
    private String description;
    // 状态:0:禁用  1:启用
    private Integer status;

    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 getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

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

    @Override
    public String toString() {
        return "Brand{" +
                "id=" + id +
                ", brandName='" + brandName + '\'' +
                ", companyName='" + companyName + '\'' +
                ", ordered=" + ordered +
                ", description='" + description + '\'' +
                ", status=" + status +
                '}';
    }
}
2.2 查询所有
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 /**
   * 查询所有
   * 1. SQL:select * from tb_brand;
   * 2. 参数:不需要
   * 3. 结果:List<Brand>
   */

@Test
public void testSelectAll() throws Exception {
    //1. 获取Connection
    //3. 加载配置文件
    Properties prop = new Properties();
    prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
    //4. 获取连接池对象
    DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

    //5. 获取数据库连接 Connection
    Connection conn = dataSource.getConnection();
    //2. 定义SQL
    String sql = "select * from tb_brand;";
    //3. 获取pstmt对象
    PreparedStatement pstmt = conn.prepareStatement(sql);
    //4. 设置参数
    //5. 执行SQL
    ResultSet rs = pstmt.executeQuery();
    //6. 处理结果 List<Brand> 封装Brand对象,装载List集合
    Brand brand = null;
    List<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);
    //7. 释放资源
    rs.close();
    pstmt.close();
    conn.close();
}
2.3 添加数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
  * 添加
  * 1. SQL:insert into tb_brand(brand_name, company_name, ordered, description, status) values(?,?,?,?,?);
  * 2. 参数:需要,除了id之外的所有参数信息
  * 3. 结果:boolean
  */
@Test
public void testAdd() throws Exception {
    // 接收页面提交的参数
    String brandName = "香飘飘";
    String companyName = "香飘飘";
    int ordered = 1;
    String description = "绕地球一圈";
    int status = 1;

    //1. 获取Connection
    //3. 加载配置文件
    Properties prop = new Properties();
    prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
    //4. 获取连接池对象
    DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    //5. 获取数据库连接 Connection
    Connection conn = dataSource.getConnection();
    //2. 定义SQL
    String sql = "insert into tb_brand(brand_name, company_name, ordered, description, status) values(?,?,?,?,?);";
    //3. 获取pstmt对象
    PreparedStatement pstmt = conn.prepareStatement(sql);
    //4. 设置参数
    pstmt.setString(1,brandName);
    pstmt.setString(2,companyName);
    pstmt.setInt(3,ordered);
    pstmt.setString(4,description);
    pstmt.setInt(5,status);

    //5. 执行SQL
    int count = pstmt.executeUpdate(); // 影响的行数
    //6. 处理结果
    System.out.println(count > 0);

    //7. 释放资源
    pstmt.close();
    conn.close();
}
2.4 修改数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
  * 修改
  * 1. SQL:

     update tb_brand
         set brand_name  = ?,
         company_name= ?,
         ordered     = ?,
         description = ?,
         status      = ?
     where id = ?

   * 2. 参数:需要,所有数据
   * 3. 结果:boolean
   */

@Test
public void testUpdate() throws Exception {
    // 接收页面提交的参数
    String brandName = "香飘飘";
    String companyName = "香飘飘";
    int ordered = 1000;
    String description = "绕地球三圈";
    int status = 1;
    int id = 4;

    //1. 获取Connection
    //3. 加载配置文件
    Properties prop = new Properties();
    prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
    //4. 获取连接池对象
    DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    //5. 获取数据库连接 Connection
    Connection conn = dataSource.getConnection();
    //2. 定义SQL
    String sql = " update tb_brand\n" +
        "         set brand_name  = ?,\n" +
        "         company_name= ?,\n" +
        "         ordered     = ?,\n" +
        "         description = ?,\n" +
        "         status      = ?\n" +
        "     where id = ?";

    //3. 获取pstmt对象
    PreparedStatement pstmt = conn.prepareStatement(sql);

    //4. 设置参数
    pstmt.setString(1,brandName);
    pstmt.setString(2,companyName);
    pstmt.setInt(3,ordered);
    pstmt.setString(4,description);
    pstmt.setInt(5,status);
    pstmt.setInt(6,id);

    //5. 执行SQL
    int count = pstmt.executeUpdate(); // 影响的行数
    //6. 处理结果
    System.out.println(count > 0);

    //7. 释放资源
    pstmt.close();
    conn.close();
}
2.5 删除数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
  * 删除
  * 1. SQL:
            delete from tb_brand where id = ?
  * 2. 参数:需要,id
  * 3. 结果:boolean
  */
@Test
public void testDeleteById() throws Exception {
    // 接收页面提交的参数
    int id = 4;
    //1. 获取Connection
    //3. 加载配置文件
    Properties prop = new Properties();
    prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
    //4. 获取连接池对象
    DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
    //5. 获取数据库连接 Connection
    Connection conn = dataSource.getConnection();
    //2. 定义SQL
    String sql = " delete from tb_brand where id = ?";
    //3. 获取pstmt对象
    PreparedStatement pstmt = conn.prepareStatement(sql);
    //4. 设置参数
    pstmt.setInt(1,id);
    //5. 执行SQL
    int count = pstmt.executeUpdate(); // 影响的行数
    //6. 处理结果
    System.out.println(count > 0);

    //7. 释放资源
    pstmt.close();
    conn.close();
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Xshell 和Xftp 得安装与使用以及常用得命令
第一个就是切换目录,查看目录下列表文件,查看文件内容 主要是这三个其他的我们可以用
斯文的程序
2019/11/07
2.5K0
Xshell 和Xftp 得安装与使用以及常用得命令
现在de前端仔真厉害,这些 Linux 知识都懂
大家好,我是虚竹,偶尔检验一下自己的功夫是否学到家,还得通过不断的吸取精华,才能输出美轮美奂的精彩实用好文。今天先来给大家讲一讲前端如何快速了解 Linux 服务器系统,并上手使用 Linux 命令的那些事儿。
玖柒的小窝
2021/09/29
6420
现在de前端仔真厉害,这些 Linux 知识都懂
精简版-Linux常用命令
精简版 Linux常用命令 目录 find 查找文件/目录 cd(change directory)切换目录 ls/dir(list)列出目录下文件 clear 清屏 dirs 显示目录记录 mv(move)移动或更名现有的文件或目录 pwd(print working directory)显示工作目录 rm(remove)删除文件或目录 mkdir(make directories)建立目录 rmdir 删除空目录 echo 显示一行文本(可使用通配符,正则表达式) ifconfig/ip add
wangmcn
2022/07/26
7940
Linux复习资料(二)、Linux基本操作
📋导读📋 💝博客主页:红目香薰_CSDN博客-大数据,MySQL,Java领域博主💝 ✍本文由在下【红目香薰】原创,首发于CSDN✍ 🤗2022年最大愿望:【服务百万技术人】🤗 📋前言📋 本文章属于系列文章,分别为: Linux复习资料(一)、VM虚拟机安装教程 Linux复习资料(二)、Linux基本操作 Linux复习资料(三)、Shell命令 目录 Linux基本操作 Linux系统的文件结构 Linux系统命令行的含义 命令的组成 文件操作 打包与解压 常用特殊命令 Linux基本
红目香薰
2022/11/29
1.8K0
Linux复习资料(二)、Linux基本操作
前端工程师Linux命令常见合集
连接服务器命令ssh root@0.0.0.0 其中ssh是一种协议,root表示连接的服务器用户名,0.0.0.0表示服务器的公网ip地址。
19组清风
2021/11/15
4470
前端工程师Linux命令常见合集
软件测试中常用的linux命令_软件测试linux
echo aaaaa >>tet 将字符串“aaaaa”,追加到名为tet文档的最后 echo dddd > tet 用字符串“dddd”替换原来tet中所有的文档 ls >> tet 将ls指令显示的内容追加到文档tet中
全栈程序员站长
2022/11/09
16K0
软件测试中常用的linux命令_软件测试linux
万字长文让你在Linux系统中游刃有余
学会对Linux的基本操作是后端JavaEE程序员的必修课。做为一个后端JavaEE程序员,通常在Windows中开发完程序后,需要部署到一个相对比较安全,稳定的服务器中运行,这台服务器上安装的往往不是Windows操作系统,而是Linux操作系统。
框架师
2020/06/03
1.9K0
Xshell Xftp官方永久免费版2023年4月亲测可用
Xshell最好的远程操作软件 远程访问Linux的软件有很多 基本上都是基于SSH的远程工具 最有名的要数Xshell 它不但支持命令行 还支持图形化访问 比如firewall的图形界面配置 ---- 另外一个重要的功能是ftp 涉及到终端和Linux服务器直接的双向数据传输 文件上传和下载等等 特别是大文件的传输 比rz命令好用不止一点点 XShell Plus 是什么 Xshell推出了一个全家桶版本 包括Xshell和Xftp的套餐 避免操作人员需要多个安装 但是,试用期很短 大家需要面临激活续费的
编程思维
2023/04/19
9361
Xshell Xftp官方永久免费版2023年4月亲测可用
Linux_day01_linux的基本命令和操作
window中通过图形化界面和鼠标可以任意切换需要进入的目录,但Linux必须通过cd命令切换目录。但在学习cd命令之前,我们有必要分清Linux的目录结构(<u>linux目录结构详细说明</u>)
名字是乱打的
2022/05/13
6020
Linux_day01_linux的基本命令和操作
linux 常用命令大全及其详解_linux命令分类
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
9490
Linux 最常用命令:能解决 95% 以上的问题
操作系统 Operating System 简称 OS,通俗讲就是一款软件,不过和一般的软件不同,操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他的软件都必须在操作系统的支持下才能运行。
IT咸鱼
2025/05/20
3040
Linux 最常用命令:能解决 95% 以上的问题
大数据学习之_01_Linux学习_01_linux的入门+VM和linux的安装+linux的目录结构+远程登录到linux服务器+vi和vim编辑器+开机、重启和用户登录注销+用户管理+用户组管理
2、Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目都会部署到Linux/unix系统上。
黑泽君
2019/02/26
2.5K0
Linux常用操作命令大全,建议收藏!!!
说明:sudo是表示超级用户,sudo命令以系统管理者的身份执行指令,需要输入自己账户密码。
混说Linux
2022/07/14
1.2K0
Linux常用操作命令大全,建议收藏!!!
linux基本命令
div class="cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_wrapper_has cke_widget_selected">
对弈
2019/09/04
1.7K0
一.Linux基础
末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式中输入一个冒号就可以了。
对弈
2019/09/04
1.3K0
XShell常用命令总结
1、rm -r :rm -r的删除范围是删除当前输入位置的文件。 2、rm -R:rm -R的删除范围是删除当前输入的目录文件夹里文件及其子目录里的文件。
阮键
2020/08/12
2.4K0
Linux 命令行操作和文件管理
Linux中的命令行界面常被称为Shell。操作系统的Shell就是“外壳”的意思,区别于操作系统的内核部分,是指“为使用者提供操作界面”的软件(命令解析器)。它接收用户命令,然后执行相应的应用程序。基本上Shell分两大类:
用户10175992
2022/11/15
2K0
Linux 命令行操作和文件管理
使用XShell远程连接Linux操作系统(图文)
为什么不是远程连接Linux服务器? 因为我不会,远程连接window我就用电脑自带的“远程桌面连接”。
React架构设计
2019/12/17
17.4K0
史上最全的Linux常用命令汇总(超全面!超详细!)收藏这一篇就够了!
tar 是 Linux 中最常用的 备份工具,此命令可以 把一系列文件 打包到 一个大文件中,也可以把一个 打包的大文件恢复成一系列文件 tar 的命令格式如下:
全栈程序员站长
2022/07/22
16K0
史上最全的Linux常用命令汇总(超全面!超详细!)收藏这一篇就够了!
xshell-常用命令
ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 ls -l *.doc 给出当前目录下以.doc结尾的所有文件
Java编程指南
2019/08/02
2.8K0
xshell-常用命令
推荐阅读
相关推荐
Xshell 和Xftp 得安装与使用以及常用得命令
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档