Java学习笔记21——使用JDBC访问MySQL数据库

news/2024/10/25 14:29:47/

JDBC(Java Database Connectivity,Java数据库连接)是应用程序编程借口(API),描述了一套访问关系数据库的标准Java类库。可以在程序中使用这些API,连接到关系数据库,执行SQL语句,对数据进行处理。JDBC不但提供了访问关系数据库的标准API,还为数据库厂商提供了一个标准的体系结构,让厂商可以为自己的数据库提供JDBC驱动程序,这些驱动程序可以让Java应用程序直接访问厂商的数据库产品,从而提高了Java程序访问数据库的效率。

1、JDBC驱动程序的类型:

JDBC驱动程序可以分为4类,分别是:

  • 1)JDBC-ODBC桥:通过ODBC访问数据库。
  • 2)部分本地API,部分Java驱动程序:大都C语言编写,依赖具体的平台。
  • 3)JDBC网络纯Java驱动程序:利用中间件的应用服务器来访问数据库,应用服务器作为数据库的网关,客户端通过它可以连接到不同的数据库服务器,如WebLogic服务器。
  • 4)本地协议纯Java驱动程序:目前,绝大多数数据库厂商支持客户程序通过网络直接与数据库通信的网络协议来直接访问数据库。这种类型的JDBC驱动程序完全用Java编写,通过与数据库建立直接的套接字连接,采用具体厂商的网络协议把JDBC API调用转换为直接的网络调用。这种类型的驱动是访问数据库效率最高的,不过,由于每个数据库厂商有自己的协议,因此访问不同厂商的数据库,需要不同的JDBC驱动程序。

2、下载MySQL JDBC 驱动

MySQL的JDBC 驱动程序没有包含在数据库的安装包中,需要单独下载,下载的网址为:MySQL :: Download Connector/Jicon-default.png?t=N7T8https://dev.mysql.com/downloads/connector/j/在浏览器中输入上面的网址,进入MySQL的JDBC 驱动程序的下载页面,如下图:

在上图下拉框中选择“Platfrom Independent”,然后出现如下图,Window平台下载zip文件下载。

将zip文件解压缩,将出现一个类似mysql-connector-j-8.3.0.jar的文件,它就是MySQL数据库的JDBC驱动。

3、JDBC API

JDBC API包含在JDK中,被分为两个包:java.sql和javax.sql。java.sql包中定义了访问数据库的接口和类,其中一些接口由驱动程序提供商来实现。

在开发数据库访问程序时,经常会编写如下的代码。

String url = "jdbc:mysql://127.0.0.1:3306/mysql";     
String username = "root"; 
String password = "2005Liuzx0302";// 加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");		
conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from user_info");

从上面代码可以看出利用JDBC访问数据库有统一的步骤。

1)首先调用Class类的forName()方法加载要访问的数据库的JDBC驱动类,

2)接下来调用Java的JDBC API(java.sql包)中的DriverManager类中的getConnection方法建立与数据库的连接,

3)然后调用Connection对象的createStatement方法,

4)最后调用Statement对象的executeQuery方法执行SQL语句得到ResultSet对象,就可以利用该对象来获取数据库中的数据了。

当然,最后要关闭数据库连接对象,释放数据库连接资源。


http://www.ppmy.cn/news/1389220.html

相关文章

Visio 2003简体中文版软件安装教程(附软件下载地址)

软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! Visio 2003简体中文版是一款独立的专业绘图软件,适用于复制、可视化处理、分析和交流信息、系统和流程。不论是哪个版本的Visio&#xff…

【WPF应用3】深入解析WPF(Windows Presentation Foundation)界面处理方式和XAML语法

摘要 本文详细介绍了WPF(Windows Presentation Foundation)界面处理方式和XAML(XML for Windows)语法。我们将分别探讨WPF的界面设计理念、XAML语言结构、布局管理器、数据绑定、事件处理、文件资源管理以及设计模式和工具支持等方…

播放器视频卡顿,延迟的原因

之前测试过一些参数,也看到了1280x720就不卡,1920x1080明显就卡的多。那么就是说数据量太大了导致的延迟与卡顿!!!!! 有可能是协议,ffmpeg参数的问题。 还有一个问题,播…

Java基础知识总结(7)

StringBuffer类 StringBuffer类,线程安全的可变字符序列,初始化容量为16个字符。一个类似于String的字符串缓冲区,但是不能修改。 常用的是append和insert方法,可以重载,以接纳不同类型的参数类型 x.append("y") 等价于 insert(x…

python基础18_作用域与名称空间

先讲讲函数对象的概念 """ 什么是函数对象,就是把函数看成是一个对象,或者是一个变量 """ print(0) #这是不是调用的print这个函数 a print #是不是把函数赋值给a,也就是a就等于这个函数 a(1) b print(1) # 就是会调用print(1)这个函数,并且…

原生html vue3使用element plus 的树tree上移下移案例源码

上效果 本树做一些限制,只能同级上下移。子级添加只能最大2级,限制判断用allow-drop事件 :allow-drop"allowDrop" if (type inner) return false //只能同级拖拽 if (draggingNode.level > categoryInfo.maxLevel) return false …

LeetCode Python - 63. 不同路径 II

目录 题目描述解法运行结果 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑…

el-date-picker时间禁用问题

// 选择今天以及今天以后的日期 export const disabledDate (time) > {return time.getTime() > Date.now() - 8.64e6; //如果没有后面的-8.64e6就是不可以选择今天的 }设置开始时间小于结束时间(不能等于) export const disabledDate (date) …