Linux CentOS環境下Java連接MySQL數據庫指南


文章目錄

  • 前言
  • 一、環境準備
    • 1.1 系統更新
    • 1.2 Java環境安裝
    • 1.3 MySQL數據庫安裝
    • 1.4 下載JDBC驅動
  • 二、編寫Java程序
    • 2.1 代碼如下
    • 2.2 編譯和運行
    • 2.3 驗證創建結果
  • 三、代碼上傳至Gitee
    • 3.1 安裝配置Git
    • 3.2 克隆倉庫到本地
    • 3.3 添加Java項目文件
    • 3.4 提交代碼到本地倉庫
    • 3.5 推送到Gitee遠程倉庫


前言

本文將詳細介紹在CentOS系統上從零開始搭建Java開發環境,安裝配置MySQL數據庫,到最終編寫并運行Java程序連接數據庫的全過程。這是一個面向初學者的完整實踐指南。(培訓時的小作業,因不想在自己電腦上裝java開發環境,特Linux測試)


一、環境準備

1.1 系統更新

# 安裝必要工具
sudo yum update -y
sudo yum install -y wget vim git

1.2 Java環境安裝

sudo yum install -y java-11-openjdk-devel
# 驗證安裝
java -version
# 設置JAVA_HOME
echo "export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))" >> ~/.bashrc
source ~/.bashrc

1.3 MySQL數據庫安裝

方法 1:安裝 MariaDB(推薦)
MariaDB 是 MySQL 的兼容替代品,CentOS Stream 9 官方倉庫直接提供

# 1. 安裝 MariaDB 服務器
sudo dnf install mariadb-server# 2. 啟動服務并設置開機自啟
sudo systemctl enable --now mariadb# 3. 安全初始化(設置 root 密碼等)
sudo mysql_secure_installation

方法 2:安裝官方 MySQL 8.0

# 1. 下載 MySQL 官方倉庫包
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm# 2. 驗證 GPG 密鑰(如報錯)
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022# 3. 禁用默認的 MySQL 模塊(CentOS Stream 9 特有步驟)
sudo dnf module disable mysql# 4. 安裝 MySQL 服務器
sudo dnf install mysql-community-server# 5. 啟動服務
sudo systemctl enable --now mysqld# 6. 獲取臨時 root 密碼
sudo grep 'temporary password' /var/log/mysqld.log# 7. 安全配置
sudo mysql_secure_installation# 檢查版本
mysql --version# 登錄 MySQL(使用設置的 root 密碼)
mysql -u root -p#-- 創建用戶并授權
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;

1.4 下載JDBC驅動

# 創建項目目錄
mkdir jdbc-project
cd jdbc-project# 下載MySQL JDBC驅動
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.28.tar.gz# 解壓并復制jar文件
tar -xzf mysql-connector-java-8.0.28.tar.gz
cp mysql-connector-java-8.0.28/mysql-connector-java-8.0.28.jar .

二、編寫Java程序

2.1 代碼如下

import java.sql.*;public class CreateDatabaseAndTable {public static void main(String[] args) {// 第一步:連接到MySQL服務器(不指定具體數據庫)String serverUrl = "jdbc:mysql://localhost:3306?useSSL=false&serverTimezone=Asia/Shanghai";String username = "jdbc_user";String password = "***@***";String databaseName = "xinghuo07";String tableName = "test07";try (Connection conn = DriverManager.getConnection(serverUrl, username, password);Statement stmt = conn.createStatement()) {// 1. 創建數據庫stmt.executeUpdate("CREATE DATABASE IF NOT EXISTS " + databaseName + " CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");System.out.println("數據庫創建成功");// 2. 切換到新創建的數據庫stmt.executeUpdate("USE " + databaseName);// 3. 創建表String createTableSql = "CREATE TABLE IF NOT EXISTS " + tableName + " (" +"id INT AUTO_INCREMENT PRIMARY KEY, " +"name VARCHAR(50) NOT NULL, " +"money DECIMAL(10,2) DEFAULT 0.00" +") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4";stmt.executeUpdate(createTableSql);System.out.println("表創建成功");// 4. 插入測試數據String insertSql = "INSERT INTO " + tableName + " (name, money) VALUES " +"('張三', 1000.50), " +"('李四', 2000.75), " +"('王五', 3000.00)";stmt.executeUpdate(insertSql);System.out.println("測試數據插入成功");} catch (SQLException e) {System.err.println("數據庫操作失敗:");e.printStackTrace();// 特殊處理"未知數據庫"錯誤if (e.getErrorCode() == 1049) { // 1049是"未知數據庫"的錯誤代碼System.err.println("\n提示:請確保先創建數據庫或使用有權限創建數據庫的用戶");}}}
}

2.2 編譯和運行

# 編譯
javac -cp mysql-connector-java-8.0.28.jar CreateDatabaseAndTable.java# 運行
java -cp .:mysql-connector-java-8.0.28.jar CreateDatabaseAndTable

2.3 驗證創建結果

#驗證連接
mysql -u jdbc_user -p******** -e "SHOW DATABASES;"
#驗證創建結果
mysql -u root -p****** -e "SHOW DATABASES; USE xinghuo07; SHOW TABLES; DESC test07; SELECT * FROM test07;"

在這里插入圖片描述

三、代碼上傳至Gitee

3.1 安裝配置Git

#安裝Git
sudo yum install -y git
# 配置Git全局信息
git config --global user.name "lihui189"
git config --global user.email "您的郵箱@example.com"

3.2 克隆倉庫到本地

在這里插入圖片描述

git clone https://gitee.com/lihui189/JdbcTest.git
cd JdbcTest 

在這里插入圖片描述

3.3 添加Java項目文件

在這里插入圖片描述

# 創建src和lib目錄(如果不存在)
mkdir -p src lib
# 移動Java文件到src目錄
mv ../CreateDatabaseAndTable.java src/
# 移動MySQL驅動到lib目錄
mv ../mysql-connector-java-8.0.28.jar lib/

創建README.md

cat > README.md <<EOF
# JDBC測試項目## 功能說明
- 使用JDBC連接MySQL數據庫
- 演示事務操作
- 包含數據插入、更新和查詢功能## 運行要求
- Java 11+
- MySQL 8.0+## 編譯運行
\`\`\`bash
javac -cp lib/mysql-connector-java-8.0.28.jar src/CreateDatabaseAndTable.java
java -cp src:lib/mysql-connector-java-8.0.28.jar CreateDatabaseAndTable
\`\`\`
EOF

3.4 提交代碼到本地倉庫

cd JdbcTest
# 添加所有文件
git add .
# 提交更改
git commit -m "添加JDBC測試項目初始代碼"
---

3.5 推送到Gitee遠程倉庫

git push origin master
#首次推送時需要輸入Gitee賬號密碼:

在這里插入圖片描述

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912638.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912638.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912638.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LLM面試12

訊飛算法工程師面試題 SVM核函數能否映射到無窮維 可以的&#xff0c;多項式核函數將低維數據映射到高維&#xff08;維度是有限的&#xff09;&#xff0c;而高斯核函數可以映射到無窮維。由 描述下xgb原理&#xff0c;損失函數 首先需要說一說GBDT,它是一種基于boosting增強…

類加載生命周期與內存區域詳解

類加載生命周期與內存區域詳解 Java 類加載的生命周期包括加載、驗證、準備、解析、初始化五個階段&#xff0c;每個階段在內存中的存儲區域和賦值機制各有不同。以下是詳細解析&#xff1a; 一、類加載生命周期階段 1. 加載&#xff08;Loading&#xff09; 內存區域&…

正交視圖三維重建2 筆記 2d線到3d線2 先生成3d線然后判斷3d線在不在

應該先連線再判斷線在不在 if(fx1tx1&&tx1tx2){ const A[fx1, fy1, ty1];const Ahat[fx1, fy1, ty2];drawlines(A[0], A[1], A[2], Ahat[0], Ahat[1], Ahat[2], lineId, type,2);}if(fx2tx1&&tx1tx2){ const B[fx2, fy2, ty1];const Bhat[fx2, fy2, ty2];drawl…

Hibernate對象生命周期全解析

Hibernate對象生命周期詳解 Hibernate作為Java領域主流的ORM框架,其核心機制之一就是對持久化對象生命周期的管理。理解Hibernate對象生命周期對于正確使用Hibernate進行數據持久化操作至關重要。Hibernate將對象分為三種主要狀態:瞬時態(Transient)、持久態(Persistent)和游…

MCP 協議使用核心講解

&#x1f4c4; MCP 協議使用核心講解 ? MCP 協議的核心在于以下幾個方面 一、MCP 請求結構&#xff08;MCPRequest&#xff09; {"messages": [{"role": "user","content": "幫我查詢一下上海的天氣"}],"tools"…

云計算中的幾何方法:曲面變形的可視化與動畫-AI云計算數值分析和代碼驗證

著重強調微分方程底層的幾何和代數結構&#xff0c;以進行更深入的分析和求解方法。開發結構保持的數值方法&#xff0c;以在計算中保持定性特征。統一符號和數值方法&#xff0c;實現有效的數學建模。利用幾何解釋&#xff08;如雙曲幾何&#xff09;求解經典微分方程。利用計…

OpenCV篇——項目(一)OCR識別讀取銀行卡號碼

目錄 信用卡數字識別系統&#xff1a;前言與代碼解析 前言 項目代碼 ??????結果演示 代碼模塊解析 1. 參數解析模塊 2. 輪廓排序函數 3. 圖像預處理模塊 4. 輸入圖像處理流程 5. 卡號區域定位 6. 數字識別與輸出 系統優勢 信用卡數字識別系統&#xff1a;前言…

Adobe AI高效設計秘籍與創新思維進階

開篇&#xff1a;十年設計征途&#xff0c;Adobe賦能創意飛翔 作為一名在設計領域耕耘十年的旅居職業設計師&#xff0c;我得益于英國帕維斯經濟與音樂學院&#xff08;Parvis School of Economics and Music&#xff09;提供的Adobe正版教育訂閱&#xff0c;得以持續探索技術…

vc formal實例

命令&#xff1a; module load gui 方式啟動命令&#xff0c; 看一下cc_pinmux.tcl 里面有什么&#xff1a; 工具feature 的設置&#xff0c;不太懂 對特定模塊做blackbox, library file, 一般是工具無法識別的模塊&#xff0c;例如 IO lib,memory lib,analog lib, 內部有 …

JavaScript取值get的json/url/普通對象參考

dstore.on(datachanged,function(dstore){ for(i0;i<dstore.getCount();i){ var a dstore.getAt(i); var imp_infoa.get(imp_info); 上面這段JS代碼&#xff0c;imp_info取到的是一長串KEY和VALUE組成的內容&#xff0c;我怎樣可以準確獲取其中一…

【C++】偵測按鍵事件

偵測按鍵事件可以用C的conio.h頭文件&#xff0c;用到的函數&#xff1a; _CRTIMP int __cdecl _getch(void); 輸入以下代碼&#xff1a; #include <iostream> #include <conio.h> using namespace std;int main() {char key;while (true) {cout << "…

Coremail受邀亮相華為開發者大會

6月20-22日&#xff0c;為期三天的HDC.2025華為開發者大會在東莞舉行&#xff0c;全球超過1.2萬名開發者匯聚現場&#xff0c;聚焦鴻蒙生態、AI技術及產業合作。Coremail作為鴻蒙生態的核心伙伴和深度參與者受邀出席&#xff0c;并獲得“智慧辦公最佳產品合作伙伴”獎項。 HDC.…

視頻斷點續播全棧實現:基于HTML5前端與Spring Boot后端

文章目錄 視頻斷點續播功能實現方案核心思路前端實現HTML結構JavaScript實現Spring Boot后端實現1.依賴配置(pom.xml)2.實體類3.存儲庫接口4.服務層5. 控制器實現要點視頻斷點續播功能構思圖流程說明用戶交互:前端核心功能:后端處理:數據存儲:?? 我的個人網站:樂樂主題創…

華為設備 QoS 流分類與流標記深度解析及實驗腳本

一、引言 在復雜網絡環境中&#xff0c;不同業務對網絡質量需求各異。語音通話要求低時延、視頻直播依賴高帶寬、普通文件傳輸對丟包容忍度相對較高 。QoS&#xff08;Quality of Service&#xff0c;服務質量&#xff09;技術通過流分類、流標記等手段&#xff0c;為不同業務…

[論文閱讀] 人工智能 + 軟件工程 | 從軟件工程視角看大語言模型:挑戰與未來之路

從軟件工程視角看大語言模型&#xff1a;挑戰與未來之路 論文標題&#xff1a;Software Engineering for Large Language Models: Research Status, Challenges and the Road Ahead arXiv:2506.23762 Software Engineering for Large Language Models: Research Status, Chall…

【Docker基礎】Docker容器管理:docker rm及其參數詳解

目錄 1 Docker容器生命周期概述 2 docker rm命令基礎 2.1 命令基本語法 2.2 命令功能說明 2.3 基本使用示例 3 docker rm參數詳解 3.1 -f, --force 3.2 -v, --volumes 3.3 -l, --link 3.4 --time 4 docker rm高級用法 4.1 批量刪除容器 4.1.1 刪除所有已停止的容器…

鴻蒙進階——Mindspore Lite AI框架源碼解讀之模型加載詳解(五)

文章大綱 引言一、LiteSession::CompileGraph(Model *model)二、LiteSession::CompileGraph(Model *model) 核心流程1、MindirModel::ConvertTensors1.1、遍歷并執行MindirModel::ConvertTensor1.1.1、MindirModel::LoadTensorData 三、LiteSession::InitGraphInputTensors(mod…

WireShark網絡取證分析第一集到第五集和dvwa靶場環境分析漏洞

文章目錄 一、WireShark網絡取證是什么?二、WireShark網絡取證1.WireShark網絡取證分析第一集Ann的即時通訊好友叫什么名字?在捕獲的即時通訊對話中第一條評論是什么?Ann傳輸的文件叫什么名字?您想提取的文件的魔數是什么(前四個字節)?文件的MD5sum是多少?什么是秘密配方…

【51單片機按下按鍵1,8位共陰極數碼管輸出2022-606。按下按鍵2,8位共陰極數碼管輸出606-1132。】2022-6-10

緣由單片極的共陰極數碼管按下按鍵1和按鍵2輸出的內容-編程語言-CSDN問答 #include "REG52.h" unsigned char code smgduan[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64}; //共陰0~F消隱減號 unsigned char Js0, miao…

HDMI轉12G- SDI GS12170+GS12281-富利威方案設計及技術支持

GS12281 是一款低功耗、多速率、重定時電纜驅動器&#xff0c;支持高達 12G UHD-SDI 的速率。它設計用于接收 100Ω 差分輸入信號&#xff0c;自動從數字視頻信號中恢復嵌入式時鐘并重新定時輸入數據&#xff0c;并通過 75Ω 同軸電纜傳輸重新定時的信號。 100Ω 走線輸入支持…