【Java】JDBC练习

JDBC练习

环境准备

-- 删除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);


SELECT * FROM tb_brand;
package pojo;

public class Brand {
    private Integer id; // 主键
    private String brandName; // 品牌名称
    private String companyName; // 企业名称
    private Integer ordered; // 排序字段
    private String description; // 描述信息
    private Integer status; // 状态

    public Brand() {}

    public Brand(Integer id, String brandName, String companyName, Integer ordered, String description, Integer status) {
        this.id = id;
        this.brandName = brandName;
        this.companyName = companyName;
        this.ordered = ordered;
        this.description = description;
        this.status = status;
    }

    // Getter and Setter methods
    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 +
                '}';
    }
}

查询所有数据

package example;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import pojo.Brand;

import javax.sql.DataSource;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

public class BrandTest {
    //查询所有:select * from tb_brand
    public static void main(String[] args) throws Exception {
        //1.获取连接Connection对象
        Properties prop=new Properties();
        prop.load(new FileInputStream("C:\\Users\\Hayaizo\\IdeaProjects\\jdbc\\jdbc_test\\src\\druid.properties"));
        //获取连接池对象
        DataSource dataSource= DruidDataSourceFactory.createDataSource(prop);
        Connection connection=dataSource.getConnection();

        //定义sql语句
        String sql="select * from tb_brand";

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

        //设置参数

        //执行SQL
        ResultSet rs=pstmt.executeQuery();

        //处理结果 List<Brand>封装Brand对象
        List<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);

        //释放资源
        rs.close();
        pstmt.close();
        connection.close();

    }
}

添加&修改&删除

package example;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import pojo.Brand;

import javax.sql.DataSource;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

public class BrandTest {
    //查询所有:select * from tb_brand
    public static void main(String[] args) throws Exception {
        //1.获取连接Connection对象
        Properties prop=new Properties();
        prop.load(new FileInputStream("C:\\Users\\Hayaizo\\IdeaProjects\\jdbc\\jdbc_test\\src\\druid.properties"));
        //获取连接池对象
        DataSource dataSource= DruidDataSourceFactory.createDataSource(prop);
        Connection connection=dataSource.getConnection();
        connection.setAutoCommit(false);

        //定义sql语句
        String sql="insert into tb_brand(brand_name,company_name,ordered,description,status) values (?,?,?,?,?)";
        String brand_name="香飘飘1";
        String company_name="香飘飘1";
        int ordered=10;
        String description="香飘飘企业1";
        int status=0;

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


        //设置参数
        pstmt.setString(1,brand_name);
        pstmt.setString(2,company_name);
        pstmt.setInt(3,ordered);
        pstmt.setString(4,description);
        pstmt.setInt(5,status);

        int res= 0;
        try {
            res = pstmt.executeUpdate();
            connection.commit();
        } catch (Exception e) {
            connection.rollback();
            throw new RuntimeException(e);
        }

        if(res!=0){
            System.out.println("添加成功");
        }else{
            System.out.println("添加失败");
        }

        //释放资源
        pstmt.close();
        connection.close();

    }
}

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

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

相关文章

C++设计模式之 模板方法模式

【声明】本题目来源于卡码网&#xff08;题目页面 (kamacoder.com)&#xff09; 【提示&#xff1a;如果不想看文字介绍&#xff0c;可以直接跳转到C编码部分】 【设计模式大纲】 【简介】 --什么是模板方法模式&#xff08;第18种设计模式&#xff09; 模板方法模式&#xff0…

《Linux高性能服务器编程》笔记02

Linux高性能服务器编程 参考 Linux高性能服务器编程源码: https://github.com/raichen/LinuxServerCodes 豆瓣: Linux高性能服务器编程 文章目录 Linux高性能服务器编程第06章 高级I/O函数6.1 pipe函数6.2 dup函数和dup2函数6.3 readv 函数和writev 函数6.4 sendfile 函数6.…

基于SSM的KTV包厢管理系统(有报告)。Javaee项目,ssm项目。

演示视频&#xff1a; 基于SSM的KTV包厢管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过…

软件测试|sqlalchemy一对一关系详解

简介 SQLAlchemy 是一个强大的 Python ORM&#xff08;对象关系映射&#xff09;库&#xff0c;它允许我们将数据库表映射到 Python 对象&#xff0c;并提供了丰富的关系模型来处理不同类型的关系&#xff0c;包括一对一关系。在本文中&#xff0c;我们将深入探讨 SQLAlchemy …

后台管理系统: 数据可视化基础

数据可视化简单理解&#xff0c;就是将数据转换成易于人员辨识和理解的视觉表现形式&#xff0c;如各种 2D 图表、3D 图表、地图、矢量图等等。 例如Excel等等 canvas <canvas> 标签只是图形容器&#xff0c;相当于一个画布&#xff0c;canvas 元素本身是没有绘图能力…

算法常用思路总结

思路 1. 求数组中最大最小值思路代码 2. 计算阶乘思路&#xff1a;代码&#xff1a; 3. 得到数字的每一位思路代码 4. 计算时间类型5. 最大公约数、最小公倍数6. 循环数组的思想题目&#xff1a;猴子选大王代码 补充经典例题1. 复试四则运算题目内容题解 2. 数列求和题目内容题…

安防监控系统EasyCVR平台用户调用设备参数,信息不返回是什么原因?

安防视频监控系统EasyCVR视频综合管理平台&#xff0c;采用了开放式的网络结构&#xff0c;平台能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;平台支持设备通过4G、5G、WIFI、有…

限流算法之流量控制的平滑之道:滑动时间窗算法

文章目录 引言简介优点缺点样例样例图样例代码 应用场景结论 引言 在互联网应用中&#xff0c;流量控制是一个重要的组件&#xff0c;用于防止系统过载和保护核心资源。常见的限流算法包括固定窗口算法和滑动时间窗算法。本文将重点介绍滑动时间窗算法&#xff0c;并分析其优缺…

掌握虚拟化:PVE平台安装教程与技术解析

&#x1f31f;&#x1f30c; 欢迎来到知识与创意的殿堂 — 远见阁小民的世界&#xff01;&#x1f680; &#x1f31f;&#x1f9ed; 在这里&#xff0c;我们一起探索技术的奥秘&#xff0c;一起在知识的海洋中遨游。 &#x1f31f;&#x1f9ed; 在这里&#xff0c;每个错误都…

Windows系统下使用docker-compose安装mysql8和mysql5.7

windows环境搭建专栏&#x1f517;点击跳转 win系统环境搭建&#xff08;十四&#xff09;——Windows系统下使用docker安装mysql8和mysql5.7 文章目录 win系统环境搭建&#xff08;十四&#xff09;——Windows系统下使用docker安装mysql8和mysql5.7MySQL81.新建文件夹2.创建…

结构体的使用和结构体指针的定义注意事项

1、使用背景 由于想把不同地方的三个变量数据存放在一个结构体中&#xff0c;并且调用W25QXX_Write((u8*)p,FLASH_SIZE-100,SIZE); //从倒数第100个地址处开始,写入SIZE长度的数据。调用flash写数据函数&#xff0c;其参数为指针地址&#xff0c;于是需要定义一个结构体和指向结…

最小二乘法拟合二维点

方法1&#xff1a;使用np.polyfit()函数进行拟合 import numpy as np import matplotlib.pyplot as plt# 模拟数据 x np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) y np.array([1, 3, 2, 4, 7, 10, 11, 15, 17, 20])# 使用多项式拟合&#xff0c;这里选择二次多项式 coefficie…

C++——函数的定义

1&#xff0c;概述 作用&#xff1a;将一段经常使用的代码封装起来&#xff0c;减少重复代码 一个较大的程序&#xff0c;一般分为若干个程序块&#xff0c;每个模块实现特定的功能。 2&#xff0c;函数的定义 函数的定义一般主要有五个步骤&#xff1a; 1&#xff0c;返回…

macOS修改默认时区显示中国时间

默认时区不是中国,显示时间不是中国时间 打开终端 ,删除旧区,并复制新时区到etcreb sudo -rm -rf /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 重启系统后时间显示为中国时间

日志记录logging

文章目录 1. logging基础使用1.1 日志的6个级别1.2 logging.basicConfig1.3 案例 2. logging的高级应用2.1 记录器Logger2.2 处理器- Handler2.3 格式器- Formatter2.4 创建关联2.4 案例 3.在项目中的应用3.1 定义全局使用的logger对象3.2 使用案例 参考 1. logging基础使用 1…

【Linux】配置dns主从服务器,能够实现正常的正反向解析

​​​​​​1、首先&#xff0c;在主服务器上配置DNS解析器。打开配置文件/etc/named.conf&#xff0c;添加以下内容&#xff1a; zone"example.com" IN {type master;file "example.com.zone";allow-transfer { slave_ip_address: }; };zone"xx.16…

减少 LLM 幻觉方法--CoVe

​来自于 Meta AI&#xff0c;原文链接&#xff1a;https://arxiv.org/abs/2309.11495 LLM 经常遇到的主要问题就是幻觉&#xff0c;减少幻觉的方法大致可分为三类&#xff1a;训练时校正、生成时校正和通过增强&#xff08;使用工具&#xff09;进行校正。 在训练时校正的方法…

burp靶场--文件上传

burp靶场–文件上传 https://portswigger.net/web-security/file-upload/lab-file-upload-remote-code-execution-via-web-shell-upload 1.文件上传 1、原理&#xff1a;文件上传漏洞是指Web服务器允许用户将文件上传到其文件系统&#xff0c;而不充分验证文件的名称、类型、…

SpringMVC环境搭配

概述 Spring MVC是Spring Framework提供的Web组件&#xff0c;全称是Spring Web MVC,是目前主流的实现MVC设计模式的框架&#xff0c;提供前端路由映射、视图解析等功能 mvc是什么 MVC是一种软件架构思想&#xff0c;把软件按照模型&#xff0c;视图&#xff0c;控制器来划分…

linux基础学习(5):yum

yum是为了解决rpm包安装依赖性而产生的一种安装工具 1.yum源 1.1配置文件位置 yum源的配置文件在/etc/yum.repos.d/中 *Base源是网络yum源&#xff0c;也就是需要联网才能使用的yum源。默认情况下&#xff0c;系统会使用Base源 *Media源是光盘yum源&#xff0c;是本地yum源…