JAVA JDBC连接mysql数据库

news2024/12/29 10:29:59

什么是驱动?

驱动是指计算机系统中的一种软件程序,它用于控制硬件设备的操作。每个硬件设备都需要与操作系统进行通信,而操作系统需要知道如何与每个设备进行通信,这就是驱动程序的作用。

什么是jdbc?

JDBC 是 Java 数据库连接的标准,它是 Java SE 平台的一部分。它提供了一种标准的方法来访问各种关系型数据库,如 MySQL、Oracle、Microsoft SQL Server 等。JDBC 通过驱动程序实现与各种不同类型的数据库的连接,开发者需要使用不同的驱动程序来连接不同类型的数据库。JDBC API 是基于 Java 语言的,因此它在 Java 应用程序中的使用非常方便。开发者可以使用 JDBC API 来执行 SQL 查询、更新和存储过程,以及管理数据库事务等操作。

jdbc和PDO?

不知道学过php但刚接触java的朋友会不会有和我类似的想法:java的jdbc和php的pdo很像,都是数据库访问接口,它们的目的是为了方便开发者在程序中与数据库交互。因此,它们在本质上是相同的,他们最大的不同或许是实现方式。

一是驱动程序:JDBC 需要使用不同的驱动程序来连接不同类型的数据库,例如使用 MySQL 驱动程序来连接 MySQL 数据库。而 PDO 支持多种不同类型的数据库,并且可以使用同一个驱动程序来连接这些不同类型的数据库。

二是编程模型:JDBC 是一种基于 Java 语言的 API,因此它的编程模型是面向对象的。而 PDO 更加简洁和直观,并且使用类似于函数的方式来访问数据库。

jdbc连接数据库步骤

使用JDBC连接mysql需要以下步骤:

1导入JDBC驱动程序的jar包:JDBC驱动程序通常由数据库供应商提供,需要将其jar包导入到项目中。

2加载JDBC驱动程序:在使用JDBC之前,需要使用Class.forName()方法来加载JDBC驱动程序。例如,加载MySQL的JDBC驱动程序:

3. 建立数据库连接:使用DriverManager.getConnection()方法来建立与数据库的连 接。该方法需要指定连接数据库的URL、用户名和密码。例如,连接到名为 mydatabase的MySQL数据库:

4创建Statement对象:使用Connection.createStatement()方法创建Statement对象,用于执行SQL语句。例如:

5执行SQL语句:使用Statement对象的execute()、executeUpdate()或executeQuery()方法来执行SQL语句。例如:

6处理查询结果:使用ResultSet对象来处理查询结果。例如:

7关闭数据库连接:在使用完数据库之后,需要使用Connection.close()方法关闭数据库连接。例如:

8注意,在使用完数据库之后,需要及时关闭数据库连接,以释放数据库资源。同时,也可以使用try-with-resources语句来自动关闭数据库连接,例如:

上述代码片段中,try-with-resources语句会自动关闭数据库连接、Statement对象和ResultSet对象。

实践

本次学习在windows的环境下进行

1、安装mysql jdbc驱动程序

下载下来是一个jar包

2、idea导入mysql驱动

3、加载与注册JDBC驱动

Class.forName("com.mysql.jdbc.Driver");

4、创建数据库连接

这里我提前创建了test数据库

 // 创建数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "");

5、创建对象,执行查询语句

 // 创建SQL查询语句
 String sql = "select * from test";

// 创建Statement对象
Statement stmt = conn.createStatement();

// 执行查询语句
ResultSet rs = stmt.executeQuery(sql);

6、处理结果集

 while (rs.next()) {

                String name = rs.getString("username");

                String password = rs.getString("password");


                System.out.println("Name: " + name);

                System.out.println("Password: " + password);
            }

7、关闭连接

rs.close();
stmt.close();
conn.close();

完整代码:

package myjdbc;
import java.sql.*;



public class jdbc {
    public static void main(String[] args) {
        try {
            // 加载MySQL JDBC驱动程序
            Class.forName("com.mysql.jdbc.Driver");

            // 创建数据库连接
            Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "");

            // 创建SQL查询语句
            String sql = "select * from test";

            // 创建Statement对象
            Statement stmt = conn.createStatement();

            // 执行查询语句
            ResultSet rs = stmt.executeQuery(sql);

            // 处理结果集
            while (rs.next()) {

                String name = rs.getString("username");

                String password = rs.getString("password");


                System.out.println("Name: " + name);

                System.out.println("Password: " + password);
            }

            // 关闭连接
            rs.close();
            stmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

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

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

相关文章

java中的LinkedList和ArrayList的选择和区别

一、LinkedList LinkedList同时实现了List接口和Deque对口,也就是收它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(stack),这样看来,linke…

操作系统面试题

操作系统一、简介篇1.解释一下什么是操作系统2.操作系统的主要功能3.软件访问硬件的几种方式4.操作系统的主要目的是什么5.为什么Linux系统下的应用程序不能直接在Windows下运行6.什么是用户态和内核态7.用户态和内核态如何切换8.什么是内核二、进程和线程篇1.多处理系统的优势…

Raft分布式共识算法学习笔记

1. Raft算法 Raft算法属于Multi-Paxos算法,它是在Multi-Paxos思想的基础上,做了一些简化和限制,比如增加了日志必须是连续的,只支持领导者、跟随者和候选人三种状态,在理解和算法实现上都相对容易许多 从本质上说&am…

HTML 扫盲

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录前言HTML 结构快速生成代码框架HTML 常见标签注释标签标题标签: h1-h6段落标签:p换行标签:br格式化标签…

MySQL优化策略

1、 sql优化 1.1 SQL 语句简化,简化是 SQL 优化的一大利器,因为简单,所以优越。 1.2 尽可能避免或者杜绝多表复杂关联,大表关联是大表处理的噩梦,一旦打开了这个口子,越来越多的需求需要关联,…

HTTPS协议之SSL/TLS详解(下)

目录 前言: SSL/TLS详解 HTTP协议传输安全性分析 对称加密 非对称加密 证书 小结: 前言: 在网络世界中,存在着运营商劫持和一些黑客的攻击。如果明文传输数据是很危险的操作,因为我们不清楚中间传输过程中就被哪…

Spring从精通到入门

Spring1.spring了解2. Spring实现2.1 添加依赖2.2 Spring实现2.2.1 xml配置实现2.2.1.1 Bean标签属性1.spring了解 spring重要性 在当前的系统中,spring的重要性and占比性高达50%,无论是在ssm、ssh等框架中,spring始终屹立在前方,…

Postman创建Elasticsearch(2.4版本)索引

一、创建索引二、删除索引三、其他1、查看es信息2、查看索引test信息3、test索引下mapping查看4、elasticsearch 2.2.1下载一、创建索引 1、请求方式:PUT2、请求地址:地址 索引名3、请求数据 {"settings": {"number_of_shards": …

C语言offsetof(TYPE, MEMBER)全解

offsetof(TYPE, MEMBER) 是一个宏定义,用于计算一个结构体中某个成员的偏移量。 其第一个参数 TYPE 是一个结构体类型,第二个参数 MEMBER 是 TYPE 中的一个成员变量名。 它将返回类型为 size_t 的整数,表示 MEMBER 相对于 TYPE 起始地址的偏…

inode和逻辑块,目录的结构,挂载的实现 源码级分析linux内核的文件系统的结构

bitmap.c 位图相关 封装了set_bit clear_bit find_first_zero clear_block等操作位图的宏 对应i节点位图和逻辑块位图有对应的四个函数 free_inode, new_inode,free_block, new_block new_block 创建逻辑块 通过super_block找到逻辑块位图,给逻辑块位图的第一个…

Spring Boot中的bean注入方式和原理

Spring Boot是一个非常流行的Java框架,它可以帮助开发者快速地构建高效、健壮的应用程序。依赖注入是Spring Boo其中一个重要的功能,就是将一个对象注入到另一个对象中,以便它们可以相互协作。在Spring Boot中,依赖注入是通过bean…

Python如何获取大量电影影评,做可视化演示

前言 《保你平安》今天上映诶,有朋友看过吗,咋样啊 这是我最近比较想看的电影了,不过不知道这影评怎么样,上周末的点映应该是有蛮多人看的吧,可以采集采集评论看过的朋友发出来的评论,分析分析 这周刚好…

2023年斋月倒计时,跨境卖家该如何做好选品和营销?

2023年斋月即将到来,这是一个伊斯兰教徒们非常重要的节日,同时也是跨境卖家们迎接销售高峰的时期。在2023年的斋月期间,跨境卖家应该如何做好选品和营销呢?本文Nox聚星将和大家好好聊一聊。 根据2022年的数据,斋月期间…

【巨人的肩膀】MySQL面试总结(一)

💪 目录💪1、什么是ER图2、数据库范式了解吗3、超键、候选键、主键、外键分别是什么?4、为什么不推荐使用外键与级联5、什么是存储过程6、drop、delete与truncate区别7、数据库设计通常分为那几步8、什么是关系型数据库9、什么是SQL10、MySQL…

SpringBoot整合Redis实现高并发数据缓存

目录什么是缓存为什么要用缓存Redis为什么这么快实现一个用户信息的缓存方式一:利用RedisTemplate实现导入依赖添加配置添加redis工具类及配置类开发mapper接口service层controller层测试方式二:采用SpringBoot注解开启缓存在启动类添加EnableCaching注解…

旋转框目标检测mmrotate v1.0.0rc1 之RTMDet训练DOTA的官方问题解析整理(四)

关于rotated_rtmdet_l-coco_pretrain-3x-dota_ms.py配置文件的batchsize和学习率设置问题:回答:如何在mmrotate中绘制特征图问题:回答:你好AllieLan,您可以尝试使用https://github.com/open-mmlab/mmyolo/blob/main/de…

Java Class 加密工具 ClassFinal

Jar包加密工具 ClassFinal介绍环境依赖使用说明下载加密命令行示例maven插件方式无密码模式机器绑定启动加密后的jar启动参数给密码不加密码参数直接启动1. 密码文件获取2. 交互输入参考资料介绍 ClassFinal 是一款 java class 文件安全加密工具,支持直接加密jar包…

KDHL-600A 回路电阻测试仪

一、产品概述 武汉凯迪正大KDHL-600A回路电阻测试仪是用于测量开关、断路器、变压器等设备的接触电阻、回路电阻的专用测试设备。其采用典型的四线制测量法,通过输出一个直流电流,施加于被测体的两个端钮之间,并测量电流流过被测体所产生的压…

Node.js简介

客户端访问网页时向服务器端发送请求要访问服务器中的页面,服务器收到请求后向数据库中进行搜索,搜索到相关数据然后返回结果给客户端显示; 这个过程就类似于:客人(客户端)去饭馆(服务端&#…

TryHackMe-VulnNet: Active(ez 域渗透)

VulnNet: Active VulnNet Entertainment在他们以前的网络中遇到了不好的时光,该网络遭受了多次破坏。现在,他们移动了整个基础架构,并再次聘请您作为核心渗透测试人员。您的目标是获得对系统的完全访问权限并破坏域。 这应该是我在thm打的最…