WEB基础--JDBC操作数据库

news2025/5/19 23:48:01

使用JDBC操作数据库

使用JDBC查询数据

五部曲:建立驱动,建立连接,获取SQL语句,执行SQL语句,释放资源

建立驱动

 //1.加载驱动
 Class.forName("com.mysql.cj.jdbc.Driver");

建立连接

//2.连接数据库
String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
String username="root";
String password="123456";
connection=DriverManager.getConnection(url,username,password);

获取SQL语句

 //3。获取SQL
 statement=connection.createStatement();
 String sql="Select * From product ";

执行SQL语句

这里用了个ResultSet来接收查询到的数据,见名知意,ResultSet--结果集

 //4.执行SQL
            ResultSet resultSet=statement.executeQuery(sql);
            while (resultSet.next()){
                Long ID=resultSet.getLong("id");
                String productName=resultSet.getString("productName");
                Double salePrice=resultSet.getDouble("salePrice");
                System.out.println(ID);
                System.out.println(productName);
                System.out.println(salePrice);
            }

释放资源

statement.close();
connection.close();

运行结果(因结果篇幅过大,故此处只展示部分结构):

完整参考代码:

public class JDBC2 {
    public static void main(String[] args) throws  Exception {
        Connection connection=null;//初始化
        Statement statement=null;//初始化
        try{
            //1.加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.连接数据库
            String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
            String username="root";
            String password="123456";
            connection=DriverManager.getConnection(url,username,password);
            //3。获取SQL
            statement=connection.createStatement();
            String sql="Select * From product ";
            //4.执行SQL
            ResultSet resultSet=statement.executeQuery(sql);
            while (resultSet.next()){
                Long ID=resultSet.getLong("id");
                String productName=resultSet.getString("productName");
                Double salePrice=resultSet.getDouble("salePrice");
                System.out.println(ID);
                System.out.println(productName);
                System.out.println(salePrice);
            }
            //5.释放资源
            try {
                statement.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
            try {
                connection.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

使用JDBC修改数据

五步曲再来一遍

建立驱动

 //1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");

建立连接

//2.建立连接
 String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
String username="root";
String password="123456";
connection= DriverManager.getConnection(url,username,password);

获取SQL语句

 //3.获取SQL
            String sql="UPDATE `test`.`product` SET `productName` = '罗技M90', `dir_id` = 3, `salePrice` = 90.00, `supplier` = '罗技', `brand` = '罗技', `cutoff` = 0.50, `costPrice` = 35.00 WHERE `id` = 22;\n";
            statement=connection.createStatement();

执行SQL语句

  //4.执行SQL
   statement.executeUpdate(sql);
   System.out.println("更新数据成功");

释放资源

​//释放资源
statement.close();
connection.close();

​

运行结果:

完整代码参考

package com.WEB.JDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC4 {
    public static void main(String[] args) throws Exception {
        Connection connection=null;
        Statement statement=null;
        try {
            //1.注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.连接数据库
            String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
            String username="root";
            String password="020315";
            connection= DriverManager.getConnection(url,username,password);
            //3.获取SQL
            String sql="UPDATE `test`.`product` SET `productName` = '罗技M90', `dir_id` = 3, `salePrice` = 90.00, `supplier` = '罗技', `brand` = '罗技', `cutoff` = 0.50, `costPrice` = 35.00 WHERE `id` = 22;\n";
            statement=connection.createStatement();
            //4.执行SQL
            statement.executeUpdate(sql);
            System.out.println("更新数据成功");
            //5.释放资源
            try {
                statement.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
            try {
                connection.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

使用JDBC插入数据

五步曲再再来一遍

建立驱动

 //1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");

建立连接

//2.建立连接
 String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
String username="root";
String password="123456";
connection= DriverManager.getConnection(url,username,password);

获取SQL语句

 //3.获取SQL
  String sql="INSERT INTO `test`.`product`(`id`, `productName`, `dir_id`, `salePrice`, `supplier`, `brand`, `cutoff`, `costPrice`) VALUES (null, 'ROG极恶之眼', 3, 1190.00, 'ROG', 'ROG', 0.50, 1135.00);\n";
 statement=connection.createStatement();

执行SQL语句

//4.执行SQL
   statement.executeUpdate(sql);
   System.out.println("插入数据成功");

释放资源

​//释放资源
statement.close();
connection.close();

​

运行结果:

完整代码参考:

public class JDBC3 {
    public static void main(String[] args) throws  Exception {
        try {
            Connection connection=null;
            Statement statement=null;
            //1.加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.建立连接
            String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC";
            String username="root";
            String password="123456";
            connection= DriverManager.getConnection(url,username,password);
            //3.获取SQL
            String sql="INSERT INTO `test`.`product`(`id`, `productName`, `dir_id`, `salePrice`, `supplier`, `brand`, `cutoff`, `costPrice`) VALUES (null, 'ROG极恶之眼', 3, 1190.00, 'ROG', 'ROG', 0.50, 1135.00);\n";
            statement=connection.createStatement();
            //4.执行SQL
            statement.executeUpdate(sql);
            System.out.println("插入数据成功");
            //5.释放资源
            try {
                statement.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
            try {
                connection.close();
            }catch (SQLException e){
                e.printStackTrace();
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

写在最后:JDBC是JAVA操作数据的规范,我的面试官曾经和我说过一句话:"要是能够把JDBC那些语句默写出来,那么Mybatis肯定是没有问题。"JDBC是规范,也是Mybatis基于封装的东西,基础语句要多加练习,这样才能熟能生巧。笔者小,中,大厂均有面试经历,每日分享JAVA全栈知识,希望与大家共同进步。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

提高谷歌抓取成功率:代理IP的7个使用误区

在当今数字化时代,数据采集和网络爬取已成为许多企业和个人必不可少的业务活动。对于爬取搜索引擎数据,特别是Google,使用代理IP是常见的手段。然而,使用代理抓取Google并不是一件轻松的事情,有许多常见的误区可能会导…

Ubuntu 部署agular项目

我的front-end是用的webpack,就直接执行的npm run build打包。 完成之后就可以\target\classes\static找到 ,直接把整个static上传到需要部署的地方就可以了。 当然这个打包output路径也是angular.json配置好了的 sudo apt update sudo apt install n…

大模型微调之 在亚马逊AWS上实战LlaMA案例(三)

大模型微调之 在亚马逊AWS上实战LlaMA案例(三) 使用 QLoRA 增强语言模型:Amazon SageMaker 上 LLaMA 2 的高效微调 语言模型在自然语言处理任务中发挥着关键作用,但训练和微调大型模型可能会占用大量内存且耗时。在本文中&…

华为数据之道第二部分导读

目录 导读 第二部分 第4章 面向“业务交易”的信息架构建设 信息架构的四个组件 数据资产目录 数据标准 数据模型 数据分布 信息架构原则:建立企业层面的共同行为准则 信息架构建设核心要素:基于业务对象进行设计和落地 按业务对象进行架构设…

十分钟掌握Java集合之List接口

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

Day 28 MySQL的数据备份与恢复

数据备份及恢复 1.概述 ​ 所有备份数据都应放在非数据库本地,而且建议有多份副本 备份: 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方 冗余: 数据有多份冗余,但不等备份&…

GNU Radio FFT模块窗函数对比

文章目录 前言一、grc 图二、窗函数及对应的运行结果1、矩形窗2、汉明窗3、汉宁窗4、黑曼窗5、黑曼-哈里斯窗6、凯泽窗7、巴特利特窗8、平顶窗 前言 GNU Radio 中 FFT 模块的窗函数包括以下几种:矩形窗(Rectangular Window)、汉明窗&#xf…

分割模型Maskformer系列

maskformer:Per-Pixel Classification is Not All You Need for Semantic Segmentation 论文地址:https://arxiv.org/pdf/2107.06278 1.概述 传统的语义分割方法通常采用逐像素分类(per-pixel classification),而实…

邦注科技 模具保护器 CCD电子眼 专业工业视觉检测设备

模具保护器是一种用于保护模具的设备,可以在塑料压铸和冲床等加工过程中起到保护模具的作用。以下是关于模具保护器在保护塑料压铸和冲床模具方面的应用: 塑料压铸模具保护器: 防止碰撞:在塑料压铸过程中,模具可能会…

【CSS基础--CSS选择器的常见用法】

CSS选择器的常见用法 1.CSS介绍1.1 基本语法规范1.2 引入样式1.3 规范 2. CSS选择器2.1 标签选择器2.2 类选择器2.3 ID选择器2.4 复合选择器 1.CSS介绍 CSS(Cascading Style Sheet),层叠样式表,由于控制页面的样式。CSS能够对网页…

【已解决】‘pip‘ 不是内部或外部命令问题

😎 作者介绍:我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun,视频号:AI-行者Sun 🎈 本文专栏:本文收录于《AI实战中的各种bug…

Linux网站服务

1.概念:HTML:超级文本编辑语言 网页:使用HTML,PHP,JAVA语言格式书写的文件。 主页:网页中呈现用户的第一个界面。 网站:多个网页组合而成的一台网站服务器。 URL:统一资源定位符,访问网站的地址。 网站架构:LAMP: LinuxApacheMYSQLPHP(系统服务器程序数据管理…

【JAVA语言-第20话】多线程详细解析(二)——线程安全,非线程安全的集合转换成线程安全

目录 线程安全 1.1 概述 1.2 案例分析 1.3 解决线程安全 1.3.1 synchronized关键字 1.3.1.1 同步代码块 1.3.1.2 同步方法 1.3.2 使用Lock锁 1.3.2.1 概述 代码示例 1.4 线程安全的类 1.4.1 非线程安全集合转换成线程安全集合 线程安全 1.1 概述 指如果有多…

外贸企业邮箱怎么注册?五款外贸企业邮箱注册步骤

专业的公司邮箱不但能提高企业形象,也能保证商业沟通的流畅与信息安全性。本文将详解五种常见的外贸企业邮箱——Zoho Mail公司邮箱、腾讯公司邮箱、阿里公司邮箱、网易公司邮箱以及Gmail公司邮箱的注册流程,协助外贸企业轻松完成邮箱注册,打…

安装Nox夜神模拟器关闭了HyperV后Docker运行不了怎么办?

1.背景 为了模拟真机,尝试安装了Nox夜神模拟器, 安装过程要求关闭Hyper-V。当时只是在程序安装卸载中关闭了系统服务。以为到时勾选上就好了。操作路径:控制面板\所有控制面板项\程序和功能\启用或关闭Windows功能\Hyper-V。 后来卸载掉了夜神…

代码随想录第四十七天|打家劫舍、打家劫舍Ⅱ、打家劫舍Ⅲ

题目链接:. - 力扣(LeetCode) 代码如下: 打家劫舍问题需要注意相邻房子不能偷,因此在偷与不偷的选择上可以归类为: 偷当前(i)的房子,则子问题变为前i-2个房子的偷取金额…

VMware虚拟机提示内存不足

VMware虚拟机,k8s集群搭建内存不足的问题 疑问:我的电脑是8G8G双通道的内存,当我在搭建k8s集群时给master-2G内存,node1-3G内存,node2-3G内存; 当依次打开虚拟机到node2时VM提示“物理内存不足,…

【第14章】spring-mvc之ajax

文章目录 前言一、准备二、单个值1.前端2.后端3. 结果 三、对象1.前端2.后端3. 结果 四、JSON对象1.前端2.后端3. 结果 五、JSON数组1.前端2.后端3. 结果 总结 前言 AJAX(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术&#xff0c…

大模型微调实战之强化学习 贝尔曼方程及价值函数(一)

大模型微调实战之强化学习 贝尔曼方程及价值函数 强化学习(RL)是机器学习中一个话题,不仅在人工智能方面。它解决问题的方式与人类类似,我们每天都在学习并在生活中变得更好。 作为一名大模型学习者,当开始深入研究强…

2024蓝桥杯网络安全部分赛题wp

爬虫协议 题目给了提示访问robots.txt 会出三个目录 访问最后一个 点进去就flag{22560c15-577c-4c8b-9944-815473758bad} packet 下载附件,这个是流量包 放wireshark流量分析 搜http协议 发现有cat flag命令,直接看他返回的流量 最后base64解码即可…