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…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
