【JAVA基础篇教学】第十六篇:Java连接和操作MySQL数据库

博主打算从0-1讲解下java基础教学,今天教学第十六篇:Java连接和操作MySQL数据库。

我将提供一个简单的示例代码,涵盖数据库连接、查询、插入和更新等操作。 

一、下载MySQL驱动包 

1.下载地址:MySQL :: Download Connector/J

2.解压文件 

二、连接MySQL数据库

在 Java 中连接到 MySQL 数据库需要使用 JDBC(Java Database Connectivity)API。您需要提供数据库的 URL、用户名和密码来建立连接。

示例代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DatabaseConnection {private static final String URL = "jdbc:mysql://localhost:3306/mydatabase";private static final String USERNAME = "username";private static final String PASSWORD = "password";public static Connection getConnection() {Connection connection = null;try {// 注册 JDBC 驱动程序Class.forName("com.mysql.cj.jdbc.Driver");// 打开连接connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}return connection;}
}

三、执行SQL查询

一旦连接成功,您就可以使用 StatementPreparedStatement 对象执行 SQL 查询。

示例代码:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class QueryExample {public static void main(String[] args) {try {Connection connection = DatabaseConnection.getConnection();Statement statement = connection.createStatement()) String sql = "SELECT * FROM users";ResultSet resultSet = statement.executeQuery(sql);while (resultSet.next()) {int id = resultSet.getInt("id");String username = resultSet.getString("username");String email = resultSet.getString("email");System.out.println("ID: " + id + ", Username: " + username + ", Email: " + email);}} catch (SQLException e) {e.printStackTrace();}}
}

四、执行SQL插入和更新

您也可以使用 StatementPreparedStatement 对象执行 SQL 插入和更新操作。

示例代码:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class InsertUpdateExample {public static void main(String[] args) {try {Connection connection = DatabaseConnection.getConnection();PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO users (username, email) VALUES (?, ?)")) preparedStatement.setString(1, "john");preparedStatement.setString(2, "john@example.com");int rowsInserted = preparedStatement.executeUpdate();if (rowsInserted > 0) {System.out.println("A new user was inserted successfully!");}} catch (SQLException e) {e.printStackTrace();}}
}

五、执行SQL删除

当需要删除数据库中的记录时,可以使用 SQL 中的 DELETE 语句。下面是使用 Java 执行 DELETE 操作的示例代码。

示例代码:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;public class DeleteExample {public static void main(String[] args) {try {Connection connection = DatabaseConnection.getConnection();PreparedStatement preparedStatement = connection.prepareStatement("DELETE FROM users WHERE id = ?")) // 设置要删除的记录的 IDint userIdToDelete = 1;preparedStatement.setInt(1, userIdToDelete);// 执行删除操作int rowsDeleted = preparedStatement.executeUpdate();if (rowsDeleted > 0) {System.out.println("User with ID " + userIdToDelete + " has been deleted successfully!");} else {System.out.println("No user found with ID " + userIdToDelete);}} catch (SQLException e) {e.printStackTrace();}}
}

六、注意事项

  • 在使用完数据库连接后,务必关闭连接,以释放资源。
  • 使用 try-with-resources 来确保资源被正确关闭,从而避免资源泄漏。
  • 在生产环境中,避免在代码中硬编码数据库连接信息,可以使用配置文件或者环境变量来管理敏感信息。

这些是使用 Java 连接和操作 MySQL 数据库的基本步骤和示例代码。您可以根据自己的需求进一步扩展和优化这些代码。

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

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

相关文章

Navicat for MySQL 使用基础与 SQL 语言的DDL

一、目的: Navicat for MySQL 是一套专为 MySQL 设计的高性能数据库管理及开发 工具。它可以用于任何版本 3.21 或以上的 MySQL 数据库服务器,并支持大 部份 MySQL 最新版本的功能,包括触发器、存储过程、函数、事件、视图、 管理用户等。…

VMware配置CentOS 7 并实现ssh连接

Vmware 17下载地址 ***永久许可证:***5Y012-8HL8P-0J8U0-032Q6-93KKF CentOS 7 下载地址 一、配置CentOS 如下 创建新的虚拟机,选择典型,点击下一步 选择上述下载镜像存储位置,选择镜像,点击下一步 3.填写相关信息…

微信小程序wx.getLocation 真机调试不出现隐私弹窗

在小程序的开发过程中,首页中包含要获取用户地理位置的功能,所以在这里的onLoad()中调用了wx.getLocation(),模拟调试时一切正常,但到了真机环境中就隐私框就不再弹出,并且出现了报错&#xff0…

智能生活新体验:小米香薰加湿器技术解码

在现代家居生活中,科技与舒适性日益交织,智能家居产品成为提升生活品质的重要工具。小米香薰加湿器作为一款集科技与生活美学于一体的产品,其独特的设计和多功能性受到了广泛欢迎。今天,我们就来详细拆解这款融合了科技与香薰元素…

Sony Camera Remote SDK在Windows上的使用

Sony官方提供了相机遥控软件开发包,允许用户自行开发应用软件,实现对相机的远程控制,包括拍摄、监看和文件传输等。截至目前最新的版本是2024.4.12发布的1.12.00版本,下载链接如下:Camera Remote SDK | LICENSE AGREEM…

初学python记录:力扣706. 设计哈希映射

题目: 不使用任何内建的哈希表库设计一个哈希映射(HashMap)。 实现 MyHashMap 类: MyHashMap() 用空映射初始化对象void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中&#x…

SpringCloud之LoadBalancer自定义负载均衡算法,基于nacos权重

LoadBalancer基于Nacos权重自定义负载算法 ReactorLoadBalancer接口&#xff0c;实现自定义负载算法需要实现该接口&#xff0c;并实现choose逻辑&#xff0c;选取对应的节点 public interface ReactorLoadBalancer<T> extends ReactiveLoadBalancer<T> {Mono<…

VMware Workstation部署最新版OpenWrt 23.05.3

正文共&#xff1a;1456 字 51 图&#xff0c;预估阅读时间&#xff1a;2 分钟 我们之前介绍了如何在VMware Workstation上安装OpenWrt&#xff08;软路由是啥&#xff1f;OpenWrt又是啥&#xff1f;长啥样&#xff1f;在VMware装一个瞅瞅&#xff09;&#xff0c;也介绍了如何…

【计算机毕业设计】物流管理系统设计与实现——后附源码

&#x1f389;**欢迎来到琛哥的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 琛哥&#xff0c;一名来自世界500强的资深程序猿&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 琛哥在深度学习任务中展现出卓越的能力&a…

ubuntu16.04安装Eclipse C/C++

1.安装 JDK 官网源码安装 首先打开JDK官网&#xff0c;JDK1.8的下载网址为&#xff1a;https://www.oracle.com/cn/java/technologies/downloads/#java8-windows&#xff0c;进入到网址如下图所示&#xff1a; 向下滑动到 JDK1.8的下载界面&#xff0c;如下图所示&#xff1a…

3_2Linux中内核级加强型火墙的管理

### 一.Selinux的功能 ### 观察现象 ①当Selinux未开启时 在/mnt中建立文件被移动到/var/ftp下可以被vsftpd服务访问 匿名用户可以通过设置后上传文件 当使用ls -Z /var/ftp查看文件时显示"?" ps auxZ | grep vsftpd 时显示&#xff1a; - root 8546 0.0 0.0 26952 …

四.音视频编辑-音频混合-概述

引言 当我们在前两篇博客中成功地构建了一个媒体组合&#xff0c;并且略过了音频部分时&#xff0c;我们意识到了我们需要对这个项目进行更详细的探讨。在本篇博客中&#xff0c;我们将会展示如何创建一个包含视频轨道、配音音频轨道以及背景音频轨道的完整媒体组合。更进一步…

Antd:在文本框中展示格式化JSON

要想将对象转换为格式化 JSON 展示在文本框中&#xff0c;需要用到 JSON.stringify JSON.stringify 方法接受三个参数&#xff1a; value&#xff1a;必需&#xff0c;一个 JavaScript 值&#xff08;通常为对象或数组&#xff09;要转换为 JSON 字符串。replacer&#xff1a…

MySql 安装,小白也可以学会成功安装的保姆级教程

MySql 安装 文章目录 MySql 安装1.Mysql下载1.1 访问下载链接1.2 选择合适版本1.3 下载安装包 2.MySql安装3.安装成功检测验证3.1 mysql自带控制台验证3.2 win系统控制台进入验证 4. mysql 配置path5. navicat 连接 mysql 1.Mysql下载 1.1 访问下载链接 MySQL Downloads 这里…

【自由看门狗配置及计算】

一、看门狗使用场景 看门狗是一个硬件计时电路&#xff0c;用来监测由软件故障导致的系统故障。 片上有两个看门狗定时器外设&#xff0c;自由看门狗定时器&#xff08;FWDGT也叫独立看门狗&#xff09;和窗口看门狗定时器&#xff08;WWDGT&#xff09;。 当嵌入式程序在运…

Linux程序调试优化(1)——内存占用详解及优化思路

文章目录 1.free查看总体的内存占用2./proc/$PID/status 查看某进程状态 linux开发最重要的两个参数&#xff0c;分别是内存以及CPU使用率&#xff0c;若内存出现严重不足&#xff0c;则在需要使用内存时&#xff0c;可能出现申请不到的情况&#xff0c;导致 OOM&#xff0c;L…

不出天府锋巢直播产业基地,即可激活电商直播产业、产教融合及人才培训服务

天府锋巢直播产业基地打造直播产业产教融合及人才培训服务新模式&#xff0c;携手政府、企业、高校&#xff0c;促进直播产业与创新人才双向奔赴&#xff0c;推进教学与实战深度融合&#xff0c;推动实习与就业无缝衔接。 各方资讯一应俱全 直播产业产教融合及人才培训服务全套…

DFS专题:力扣岛屿问题(持续更新)

DFS专题&#xff1a;力扣岛屿问题 开篇 每次做到DFS相关的题目都是直接跳过。蓝桥杯过后痛定思痛&#xff0c;好好学习一下DFS和BFS。先从DFS开始吧。 参考题解&#xff1a;nettee&#xff1a;岛屿类问题的通用解法、DFS 遍历框架 一、岛屿数量 题目链接: 200.岛屿数量 题…

Vue3学习05 一些API

Vue3-API 其它 API【shallowRef 与 shallowReactive 】shallowRefshallowReactive总结 【readonly 与 shallowReadonly】readonlyshallowReadonly 【toRaw 与 markRaw】toRawmarkRaw 【customRef】 Vue3新组件【Teleport】【Suspense】【全局API转移到应用对象】【其他】 其它 …

BackTrader 中文文档(一)

原文&#xff1a;www.backtrader.com/ 主页 欢迎来到 backtrader&#xff01; 原文&#xff1a;www.backtrader.com/ 一个功能丰富的 Python 框架&#xff0c;用于回测和交易 backtrader允许您专注于编写可重复使用的交易策略、指标和分析器&#xff0c;而不必花时间构建基础…