WEB基础--JDBC操作数据库

使用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。获取SQLstatement=connection.createStatement();String sql="Select * From product ";

执行SQL语句

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

 //4.执行SQLResultSet 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。获取SQLstatement=connection.createStatement();String sql="Select * From product ";//4.执行SQLResultSet 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.获取SQLString 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.执行SQLstatement.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.获取SQLString 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.执行SQLstatement.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.获取SQLString 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.执行SQLstatement.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.获取SQLString 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.执行SQLstatement.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.mzph.cn/pingmian/8444.shtml

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

相关文章

【Android】Room数据库的简单使用方法

Room数据库的使用方法 目录 1、添加Room数据库的依赖2、Entity——定义实体类 2.1 定义主键——PrimaryKey2.2 字段注解——ColumnInfo 3、Dao——定义数据访问对象4、Database——数据库 4.1 通过回调观察数据库是否创建成功 5、使用时注意点6、编写异步 DAO 查询 6.1 写异步…

【CSS】认识CSS选择器及各选择器对应的用法

目录 一、什么是CSS? 二、CSS 选择器 1. 标签选择器 2. 类选择器 3. ID选择器 4. 通配符选择器 5. 复合选择器 一、什么是CSS? CSS(Cascading Style Sheet),层叠样式表。它与 HTML(超文本标记语言)一起使用&am…

Django-新冠疫情数据分析系统-67684

目 录 摘要 1 绪论 1.1 研究背景 1.2论文结构与章节安排 2 新冠疫情数据分析系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析…

2024.5.8 2.二叉树的最大深度 (简单)

给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 示例 2: 输入:root [1,null,2] 输…

批量图片重命名及汇总

又一堆图片文件需要处理... 源文件分布: 有N个文件夹,每个文件夹下又有M个子文件夹,每个子文件夹下有X张图片。 例如文件夹A下有子文件夹A1,A2,A3,子文件夹A1下有图片a-1,a-2,a-3...... 处理目标: 1、将所有图片汇…

五月最新流行音乐网,整点干货(10个网站)听歌就要自由!

随着互联网的迅猛发展,音乐产业也迎来了前所未有的变革。如今,我们无需再依赖传统的唱片店或电台,就能轻松接触到来自世界各地的音乐。而“最新流行音乐网”正是这一变革的产物,为广大音乐爱好者提供了一个探索音乐潮流的新天地。…

将大概的流程具体还是看源码

之前看源码的时候呢没有文字整理,想来还是写一个大概的流程吧,具体是无法用文字描述 spring源码真的yyds,数据结构 反射 父子类 接口…玩得溜到飞起 博大精深呐 后期不断喜欢ing! springApplication.run方法 获取了一个Configu…

无刷电机和有刷电机的区别

无刷电机和有刷电机的区别 无刷电机的定子上绕着线圈,线圈通常是成对出现的,通过控制电路为每一对线圈按照一定顺序输入电流,就可以产生旋转的磁场 它还有一个永磁体转子,现在多采用高磁能级的稀土铷铁硼材料,体积更小…

DBdoctor产品介绍

基本信息 DBdoctor是聚好看科技股份有限公司自主研发的一款数据库内核级性能诊断工具,首次将eBPF技术聚焦在了数据库领域,一分钟内定位数据库性能问题并给出优化建议,实现数据库性能诊断百倍提效。 免费下载 请在PC端打开以下链接&#x…

ps5电玩计时收费系统软件教程,电玩店适合的计时器,电脑定时语音提醒

ps5电玩计时收费系统软件教程,电玩店适合的计时器,电脑定时语音提醒 一、前言 以下软件操作教程以,佳易王电玩计时计费管理软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、计时计费功能:只…

【日志革新】在ThinkPHP5中实现高效TraceId集成,打造可靠的日志追踪系统

问题背景 最近接手了一个骨灰级的项目,然而在项目中遇到了一个普遍的挑战:由于公司采用 ELK(Elasticsearch、Logstash、Kibana)作为日志收集和分析工具,追踪生产问题成为了一大难题。尽管 ELK 提供了强大的日志分析功…

Spring:OAuth2.0

文章目录 一、认证与授权二、OAuth2.0介绍 一、认证与授权 认证(Authentication)与授权(Authorization)在网络安全和系统管理中是两个重要的概念,它们各自有不同的作用和目标。 认证是验证确认身份以授予对系统的访问…

RAG解决方案:解决LLM大模型私域数据缺失问题

目前LLM大模型是一种预训练模型(训练完成后 信息就会截止),那么在获取最新数据和私域数据时候,LLM会有无法给出相关回答的问题。 那么RAG方案可以一定程度上解决这个问题。 用户搜索后,会先在检索系统中检索,然后再把问题和私域数…

夏天一到,手机越用越烫?怎样降低持久使用手机时的温度?

夏季来临,手机的温度也随着使用环境的温度升高变得更容易发热。 虽说属于正常的物理现象,但手机过热用起来还是不太舒服,还容易出现过热提醒,导致除“拨号”和“联系人”外,无法使用其它应用。 分享几个减少功耗的小技…

JAVA版本的ATM编程问题记录

前段时间用C语言写了个银行ATM系统,还写了一篇文章记录了一些,C语言的ATM文章。后来又用IDEA写了一个JAVA版本的银行ATM。有人就会问为啥浪费这个时间写ATM呢?🧐其实是我本科代码没学好,所以现在想利用比较熟悉的ATM系…

Spring Web MVC 快速入门

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 什么是Spring MVC? MVC模式介绍 ​编辑学习Spring MVC…

node.js对数据库mysql的连接与操作(增、删、改、查、五种SQL语法)

前提:先在vscode终端下载安装mysql:npm install mysql -save 步骤总结: (1)建立与数据库的连接 (2)做出请求: 实际上就是操作mysql里的数据。增删改查 insert、delete、updata、select (3)通过回调函数获取结果 一、什么是SQ…

【Kubernetes集群一主二从安装教程】

文章目录 环境准备主机间做信任安装ansible工具 升级内核版本使用elrepo源升级内核查看最新版内核安装最新的内核版本设置系统默认内核设置默认内核为我们刚才升级的内核版本 初始化关闭防火墙关闭selinux关闭swap修改主机名修改hosts文件将桥接的IPv4流量传递到iptables的链配…

nlp课设 - 基于BERT 的情感分类

基于BERT 的情感分类 主要论文: BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(双向Transformer 的预训练) 核心技术: Embedding 、Attention --> Transformer 任务简介、拟解决问题…

09 - 数据清洗案例

流程图 kettle 面板图片 操作步骤 1、订阅数据源(kafka consumer) 2、抽取字段并转换key(JSON input) 3、判断img字段是否有值,有的话进行url转base64(JavaScript 代码) // 获取输入字段的值 v…