JDBC概述(什么是JDBC?JDBC的原理、Mysql和Sql Server入门JDBC操作)
Hi i,m JinXiang
⭐ 前言 ⭐
本篇文章主要介绍JDBC概述(什么是JDBC?JDBC的原理、Mysql和Sql Server入门JDBC操作)简单知识以及部分理论知识
🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁
🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言
目录
⭐什么是JDBC?
⭐为什么要使用JDBC
🍧使用JDBC有以下几个主要原因:
🍧使用JDBC的好处:
⭐JDBC的原理?
⭐Mysql和sql server入门JDBC操作
🍧1、Mysql的JDBC操作
🍧2、Sql Server的JDBC操作
⭐什么是JDBC?
JDBC是Java Database Connectivity的缩写
是一种用于Java程序访问关系型数据库的API(应用程序接口)。
它允许Java程序员使用标准的SQL语句来访问和操作关系型数据库。JDBC提供了一种标准的方式来连接到不同数据库的驱动程序,并且是Java EE平台上进行数据访问的基础。它提供了许多接口和类,使Java应用程序可以通过它们来访问和管理关系型数据库。
⭐为什么要使用JDBC
🍧使用JDBC有以下几个主要原因:
1. Java语言的跨平台性:JDBC可以在各种操作系统和计算机体系结构上运行,这使得使用Java开发的应用程序可以方便地与不同类型的数据库进行交互。
2. 标准化:JDBC是一个标准化的API,提供了一致的访问关系数据库的方法,使得不同的JDBC驱动程序可以实现相同的接口。这方便了Java开发人员在不同的关系型数据库之间切换。
3. 安全性:使用JDBC可以使数据访问更加安全。通过JDBC API访问数据库,可以避免直接在代码中包含SQL语句,从而防止SQL注入攻击。
4. 性能:JDBC可以提供高效的数据访问,因为它允许Java程序员使用原生SQL语言来访问数据库,而且JDBC驱动程序可以优化SQL语句的执行。
综上所述,JDBC是Java开发人员进行关系型数据库操作的重要工具,它提供了一种标准化的方式来连接到不同数据库的驱动程序,并且可以保证安全、跨平台和高效的数据访问。
🍧使用JDBC的好处:
1. 简化了Java应用程序与各种数据库之间的连接和数据交互,使Java应用程序可以与不同类型的数据库通信。
2. 通过JDBC,开发人员能够使用标准SQL语句来执行数据库查询,修改和更新等操作,而无需了解特定数据库的API。
3. 可以使用JDBC提供的API来保证数据的完整性和安全性,并提高数据访问的效率。
4. JDBC允许开发人员使用Java语言来编写数据库驱动程序,从而提供了一个灵活的方式来访问数据库。
5. JDBC提供了一种标准的方式来访问和管理关系型数据库,这使得Java EE平台上对数据进行管理更加容易和可靠。
⭐JDBC的原理?
JDBC(Java Database Connectivity)是Java语言访问关系型数据库的标准API。它的原理如下:
1. 加载数据库驱动:在Java应用程序中,首先需要加载适当的数据库驱动程序。
2. 连接数据库:使用Java程序中的getConnection()方法与数据库建立连接。
3. 创建操作对象:使用Java程序中的Statement对象或者PreparedStatement对象来执行SQL语句。
4. 执行SQL语句:使用Statement对象或者PreparedStatement对象来执行SQL语句,在执行SQL语句之前,需要对SQL语句进行预编译。
5. 处理查询结果:使用ResultSet对象来处理从数据库返回的查询结果。
6. 释放资源:使用Java程序中的close()方法释放资源(ResultSet对象、Statement对象、Connection对象)。
JDBC的执行过程是通过Java语言的标准接口实现的,具有跨平台的优点。同时,JDBC也支持连接池和事务管理等功能。
⭐Mysql和sql server入门JDBC操作
🍧1、Mysql的JDBC操作
package jdbc;import java.sql.*;public class JdbcDome {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/1127douyinDB";String user = "root";String password = "root";try {// 加载MySQL驱动程序Class.forName("com.mysql.cj.jdbc.Driver");// 建立MySQL数据库连接Connection connection = DriverManager.getConnection(url, user, password);// 创建Statement对象Statement statement = connection.createStatement();// 执行SQL查询语句ResultSet resultSet = statement.executeQuery("SELECT * FROM douyin");// 处理查询结果while (resultSet.next()) {int id = resultSet.getInt("id");String liveStreaming = resultSet.getString("liveStreaming");int looknumber = resultSet.getInt("looknumber");System.out.println("id: " + id +"\tName: " + liveStreaming + "\tlooknumber: " + looknumber);}// 关闭ResultSet、Statement和Connection对象resultSet.close();statement.close();connection.close();} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}}
}
这些代码实现了连接到MySQL数据库并查询student表中的数据,并且输出查询结果。需要注意的是,实际开发中建议使用try-with-resources语句来自动关闭资源,而不是手动调用close()方法。
🍧2、Sql Server的JDBC操作
import java.sql.*;public class Dome {public static void main(String[] args) {//定义加载驱动String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";//定义数据库用户String userName = "sa";//定义数据库密码String userPwd = "sasa";//定义数据库连接对象Connection dbConn = null;//定义命令对象Statement stmt=null;try {//1.加载及注册驱动Class.forName(driverName);//2.定义数据库连接字符串String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=LOLDB";//3.数据库连接dbConn = DriverManager.getConnection(dbURL, userName, userPwd);System.out.println("连接数据库成功");//4.定义SQL语句String sql="select * from LolNameTab";//5.创建一个执行sql对象stmt=dbConn.createStatement();//6.执行SQL语句命令ResultSet resultSet = stmt.executeQuery(sql);//7.处理结果,并获取数据while (resultSet.next()){String userID=resultSet.getString("userID");String password=resultSet.getString("password");String name=resultSet.getString("userName");System.out.println(userID+"\t"+password+"\t"+name);}//8.关闭连接resultSet.close();dbConn.close();stmt.close();} catch (SQLException e) { //数据库的处理异常的方法e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally {if (dbConn!=null){try {dbConn.close();} catch (SQLException e) {e.printStackTrace();}}if(stmt!=null){try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}}}
}
总结不易,希望uu们不要吝啬亲爱的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁
相关文章:
JDBC概述(什么是JDBC?JDBC的原理、Mysql和Sql Server入门JDBC操作)
Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍JDBC概述(什么是JDBC?JDBC的原理、Mysql和Sql Server入门JDBC操作)简单知识以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 &am…...
【android开发-06】android中textview,button和edittext控件的用法介绍
1,TextView控件使用代码参考用例 在Android中,我们通常使用XML来定义布局和设置视图属性。以下是一个TextView的XML布局设置示例: 1.1在res/layout目录下的activity_main.xml文件中定义一个TextView: <TextView android:id…...
【JMeter】BeanShell了解基础知识
1. BeanShell是什么? 完全符合java语法的免费,可嵌入式的脚本语言 2.BeanShell用法 操作变量,使用vars内置对象 String 自定义变量名 vars.get("变量名") 从jmeter中获取变量值并定义一个变量接收vars.put(…...
Unity | 渡鸦避难所-0 | 创建 URP 项目并导入商店资源
0 前言 知识点零零碎碎,没有目标,所以,一起做游戏吧 各位老师如果有什么指点、批评、漫骂、想法、建议、疑惑等,欢迎留言,一起学习 1 创建 3D(URP)项目 在 Unity Hub 中点击新项目ÿ…...
SQL Server数据库部署
数据库简介 使用数据库的必要性 使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据。数据库 具有以下特点。 》可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。 》 可以有效地保持数据信息的一致性,…...
YOLOv8界面-目标检测+语义分割+追踪+姿态识别(姿态估计)+界面DeepSort/ByteTrack-PyQt-GUI
YOLOv8-DeepSort/ByteTrack-PyQt-GUI:全面解决方案,涵盖目标检测、跟踪和人体姿态估计 YOLOv8-DeepSort/ByteTrack-PyQt-GUI是一个多功能图形用户界面,旨在充分发挥YOLOv8在目标检测/跟踪和人体姿态估计/跟踪方面的能力,与图像、…...
MiniDumpWriteDump函数生成dmp文件
MiniDumpWriteDump函数生成dmp文件 一:概述二: CreateDump.h三:CreateDump.cpp四:main测试五:winDbg分析 一:概述 v2008及以上版本都可以用。 包含CreateDump.h,CreateDump.cpp文件,…...
【Qt开发流程】之事件系统1:事件系统描述及事件发生流程
Qt的事件系统 在Qt中,事件是对象,派生自抽象的QEvent类,它表示应用程序内部发生的事情或作为应用程序需要知道的外部活动的结果。事件可以由QObject子类的任何实例接收和处理,但它们与小部件特别相关。以下描述了在典型应用程序中…...
初始数据结构(加深对旋转的理解)
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/rotate-array/submissions/ 与字…...
Android 13 - Media框架(18)- CodecBase
从这一节开始我们会回到上层来看ACodec的实现,在这之前我们会先了解ACodec的基类CodecBase。CodecBase.h 中除了声明有自身接口外,还定义有内部类 CodecCallback、BufferCallback,以及另一个基类 BufferChannelBase,接下来我们会一…...
关于微信公众号授权的几件事
背景 项目需要使用微信公众号发消息,然后就来接入这个微信授权啦,微信公众号发消息前提是还需要用户先关注公众号~ 微信授权是有点恶心的,真的真的需要先配置好环境,开发的话目前是可以使用测试号申请公众号使用测试号的appid~ …...
Docker监控Weave Scope的安装和使用
1.本地安装Weave Scope 1)创建文件夹。 mkdir /usr/local/bin/scope 2)从本地上传文件。 rz scope.bin以资源形式已上传到文章开篇。 3)修改scope.bin文件为可执行文件。 chmod 755 /usr/local/bin/scope/scope.bin 4)执行sco…...
为自己创建的游戏编程源码申请软件著作权详细流程(免费分享模板)
以为我这篇文章制作的游戏申请软件著作权为例 Ren‘py 视觉小说 交互式故事游戏制作过程学习笔记(Windows下实现)(多结局游戏)-CSDN博客 一、网站注册 申请软著时,所有的著作权人都需要在中国版权保护中心官网注册账号,并进行实名认证后,才…...
代币化:2024年的金融浪潮预示着什么?
自“TradFi”领袖到加密专家,各方预测代币化机会高达数十万亿。虽然已有引人注目的用例,但与未来几年可能在链上转移的大量数字化资产相比,这些仅是冰山一角。 代币化何时会变为洪流?什么阻碍了其发展? 今年10月&…...
[学习记录]Node event loop 总结流程图
文章目录 文章来源根据内容输出的流程图待处理遗留的问题参考 文章来源 详解JavaScript中的Event Loop(事件循环)机制 根据内容输出的流程图 待处理 这里从polling阶段开始 好像有些问题 遗留的问题 为什么“在I/O事件的回调中,setImmediate…...
【LeetCode热题100】【双指针】移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出…...
Mybatis 分页查询的三种实现
Mybatis 分页查询 1. 直接在 sql 中使用 limit2. 使用 RowBounds3. 使用 Mybatis 提供的拦截器机制3.1 创建一个自定义拦截器类实现 Interceptor3.2 创建分页查询函数 与 sql3.3 编写拦截逻辑3.4 注册 PageInterceptor 到 Mybatis 拦截器链中3.5 测试 准备一个分页查询类 Data…...
各类声音数据集大合集—乐器、车辆、鸟鸣、蜜蜂声音、歌曲、喇叭、人类声音不同等类型的声音数据集
最近收集了一大波关于各类声音的数据集,包含乐器、车辆、鸟鸣、蜜蜂声音、歌曲、喇叭、人类声音不同等类型的声音数据集,废话不多说,给大家逐一介绍!! 1、吉他和弦大调、小调数据集 吉他和弦大调、小调数据集&#x…...
java设计模式学习之【原型模式】
文章目录 引言原型模式简介定义与用途实现方式UML 使用场景优势与劣势原型模式在spring中的应用员工记录示例代码地址 引言 原型模式是一种创建型设计模式,它允许对象能够复制自身,以此来创建一个新的对象。这种模式在需要重复地创建相似对象时非常有用…...
链表数组插入排序
InsertSort 插入排序算法,比如打扑克牌的算法时,按照从左到右,找到对应的位置插入排序 最重要的是位置移动 找到对应位置值 #include "iostream" #include "bits/stdc.h"using namespace std;void sort(vector<in…...
JAE日本航空电子推出满足汽车市场小型防水最新需求的MX80系列连接器
随着汽车电子化和高功能化的演进,每辆汽车所搭载的电子设备数量逐年增加。为了在有限安装空间内集成更多的功能,车载用电子零部件必然要求进一步小型化,高功能化。同时由于连接各设备之间的布线空间也在缩小,因此开发小型化&#…...
Linux who命令实现:文件读写与系统编程实践
1. 从零实现Linux who命令:深入理解文件读写与系统编程作为一个常年与Linux打交道的开发者,我始终认为理解系统命令的实现原理是提升编程能力的最佳途径。今天我们就来解剖who这个看似简单却内涵丰富的命令,通过亲手实现它来掌握Linux文件操作…...
logback 只能有 1 个 <root> 标签!
<?xml version"1.0" encoding"UTF-8"?> <configuration> <!-- 路径 --> <property name"PATH" value"./log/open"/> <!-- 控制台输出 --> <appender name"STDOUT" class"ch.qos.lo…...
AD7193高精度ADC驱动设计与嵌入式集成实践
1. PRDC_AD7193 库概述:面向高精度测量的 AD7193 嵌入式驱动设计与工程实践AD7193 是 Analog Devices(ADI)推出的一款专为高精度、低噪声测量场景优化的 Σ-Δ 型 24 位模数转换器(ADC)。其核心特性包括:集…...
区块链AI骗局:深扒某DeFi项目的测试造假链
当技术信任沦为欺诈工具 在软件测试领域,我们习惯于与代码、流程和标准打交道,致力于构建可靠、可验证的系统。然而,在区块链与人工智能融合的前沿地带,一场针对“信任”本身的系统性造假正在上演。本文旨在从一个软件测试工程师…...
机械臂空间直线圆弧圆插补代码介绍
【机械臂空间直线&圆弧&圆插补】 代码主要功能: 1. 正逆运动学解析解; 2. 空间直线、圆弧以及圆插补; 3. 基于Slerp、Nlerp算法的机械臂末端两姿态插补算法; 4. 机械臂空间直线、圆弧以及圆插补。 购前须知: 1. 代码均为个人手写&…...
蛋白质功能预测:从序列同源性到多模态深度学习
点击 “AladdinEdu,你的AI学习实践工作坊”,注册即送-H卡级别算力,沉浸式云原生集成开发环境,80G大显存多卡并行,按量弹性计费,教育用户更享超低价。 摘要:蛋白质功能预测是注释未知蛋白质、揭示…...
【重磅原创改进代码】基于自适应峰谷感知(APVP)多头注意力(MHA)多任务学习(MTL)的多变量多输出时间序列预测附Python代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…...
L-SHADE算法实战:如何用线性种群缩减提升优化性能(附Python代码)
L-SHADE算法实战:如何用线性种群缩减提升优化性能(附Python代码) 在优化算法的世界里,差分进化(Differential Evolution, DE)一直以其简单高效著称。但传统DE算法在面对高维复杂问题时,常常陷入…...
如何一次删除iPad上的多个应用程序? - 5 种有效方法
随着时间的推移,您的 iPad 可能会积累许多不必要的应用程序,导致存储空间不足并影响设备性能。因此,最好的方法是删除这些应用程序。然而,逐个删除它们可能很耗时;一次性删除多个应用程序可以更有效地释放空间并提高设…...
