java連數據庫

一、準備工作

  1. ??安裝MySQL數據庫??
    確保已安裝MySQL服務器并啟動服務

  2. ??下載JDBC驅動??

    • 官方驅動:MySQL Connector/J
    • Maven依賴:
      <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version>
      </dependency>

      <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency>

二、基礎連接步驟?

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class MySQLDemo {// 數據庫信息static final String URL = "jdbc:mysql://localhost:3306/mydatabase";static final String USER = "root";static final String PASSWORD = "123456";public static void main(String[] args) {Connection conn = null;try {// 1. 加載驅動(JDBC 4.0+ 可自動加載)Class.forName("com.mysql.cj.jdbc.Driver");// 2. 建立連接conn = DriverManager.getConnection(URL, USER, PASSWORD);// 3. 使用連接進行數據庫操作System.out.println("連接成功!");} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();} finally {// 4. 關閉連接try {if(conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}}}
}

三、關鍵參數說明

  1. ??連接URL格式??

    jdbc:mysql://[host][:port]/[database][?參數]
    • 常用參數:
      • useSSL=false?禁用SSL(開發環境建議)
      • serverTimezone=UTC?設置時區
      • characterEncoding=utf8?字符編碼
  2. ??推薦完整URL?

    String URL = "jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8";

    ?

四、執行SQL操作

1. 查詢數據示例
Statement stmt = null;
ResultSet rs = null;
try {stmt = conn.createStatement();rs = stmt.executeQuery("SELECT id, name FROM users");while(rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");System.out.println(id + ": " + name);}
} finally {if(rs != null) rs.close();if(stmt != null) stmt.close();
}
2. 使用PreparedStatement(推薦)
String sql = "INSERT INTO users(name, age) VALUES(?, ?)";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {pstmt.setString(1, "張三");pstmt.setInt(2, 25);int rows = pstmt.executeUpdate();System.out.println("插入" + rows + "條記錄");
}

五、事務管理

try {conn.setAutoCommit(false); // 關閉自動提交// 執行多個SQL操作...conn.commit(); // 提交事務
} catch (SQLException e) {try {conn.rollback(); // 回滾事務} catch (SQLException ex) {ex.printStackTrace();}e.printStackTrace();
} finally {conn.setAutoCommit(true); // 恢復自動提交
}

六、常見問題排查

  1. ??驅動加載失敗??

    • 確認jar包已正確添加到classpath
    • 檢查驅動類名是否正確(新版使用com.mysql.cj.jdbc.Driver
  2. ??連接超時??

    • 檢查MySQL服務是否運行
    • 驗證用戶名/密碼是否正確
    • 檢查防火墻設置
  3. ??時區問題??

    // 在連接URL中添加時區參數 ?serverTimezone=Asia/Shanghai

七、連接池推薦

對于生產環境,建議使用連接池:

  • HikariCP(性能最佳)
  • Druid(阿里出品,帶監控功能)

HikariCP簡單示例:

HikariConfig config = new HikariConfig();
config.setJdbcUrl(URL);
config.setUsername(USER);
config.setPassword(PASSWORD);try (HikariDataSource ds = new HikariDataSource(config);Connection conn = ds.getConnection()) {// 使用連接...
}

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

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

相關文章

【生態信息】開源軟件全方位解析

開源軟件(0pen Source Software&#xff0c;0ss)是指其源代碼可以公開發布、查看、使用和修改的軟件。這一概念的核心在于開放性和共享性&#xff0c;允許開發者自由地使用、修改、分發以及改進軟件。開源軟件通常遵循特定的開源許可證&#xff0c;這些許可證確保了軟件的自由使…

探秘 DeerFlow:字節跳動開源的科研創作魔法盒!

1.前言 字節跳動于2025年5月9日開源了名為DeerFlow的全新Deep Research項目&#xff0c;該項目基于LangStack框架&#xff0c;旨在通過人工智能技術簡化科研和內容創作流程。DeerFlow整合了語言模型、網絡搜索、爬蟲和Python代碼執行等多種工具&#xff0c;支持深度研究、MCP集…

機器學習第十一講:標準化 → 把厘米和公斤單位統一成標準值

機器學習第十一講&#xff1a;標準化 → 把厘米和公斤單位統一成標準值 資料取自《零基礎學機器學習》。 查看總目錄&#xff1a;學習大綱 關于DeepSeek本地部署指南可以看下我之前寫的文章&#xff1a;DeepSeek R1本地與線上滿血版部署&#xff1a;超詳細手把手指南 一、買菜…

less中使用 @supports

在Less中使用supports supports 是CSS的條件規則&#xff0c;用于檢測瀏覽器是否支持特定的CSS屬性或值。在Less中&#xff0c;你可以像在普通CSS中一樣使用supports&#xff0c;同時還能利用Less的特性來增強它。 基本用法 /* 檢測瀏覽器是否支持display: flex */ supports …

LeetCode Hot100 (1/100)

目錄 一、有關數組和動態數組的排序&#xff08;sort函數&#xff09; 1.普通數組的排序 基本用法 降序排序 2.vector的排序 基本用法 降序排序 二、數組長度和一些vector的基本語法 1. 靜態數組長度計算? 2. 安全獲取數組長度&#xff08;C17 起&#xff09;? 3.vecto…

通過MCP讓LLM調用系統接口

場景 MCP的出現大大豐富了LLM的功能&#xff0c;對于存量系統&#xff0c;我們希望能讓模型調用已有的接口&#xff0c;以最小的成本讓AI能夠獲取系統內部數據。因此我們開發了一個名為http-api-call的MCP Server&#xff0c;來支持模型到內部API的調用 實現方案 使用用標準…

基于Transformer的多資產收益預測模型實戰(附PyTorch實現與避坑指南)

基于Transformer的多資產收益預測模型實戰(附PyTorch模型訓練及可視化完整代碼) 一、項目背景與目標 在量化投資領域,利用時間序列數據預測資產收益是核心任務之一。傳統方法如LSTM難以捕捉資產間的復雜依賴關系,而Transformer架構通過自注意力機制能有效建模多資產間的聯…

養生:打造健康生活的全方位策略

在生活節奏不斷加快的當下&#xff0c;養生已成為提升生活質量、維護身心平衡的重要方式。從飲食、運動到睡眠&#xff0c;再到心態調節&#xff0c;各個方面的養生之道共同構建起健康生活的堅實基礎。以下為您詳細介紹養生的關鍵要點&#xff0c;助您擁抱健康生活。 飲食養生…

輕型汽車鼓式液壓制動器系統設計

一、設計基礎參數 1.1 整車匹配參數 參數項數值范圍整備質量1200-1500kg最大設計車速160km/h輪胎規格195/65 R15制動法規要求GB 12676-2014 1.2 制動性能指標 制動減速度&#xff1a;≥6.2m/s&#xff08;0型試驗&#xff09; 熱衰退率&#xff1a;≤30%&#xff08;連續10…

無法更新Google Chrome的解決問題

解決問題&#xff1a;原文鏈接&#xff1a;【百分百成功】Window 10 Google Chrome無法啟動更新檢查&#xff08;錯誤代碼為1&#xff1a;0x80004005&#xff09; google谷歌chrome瀏覽器無法更新Chrome無法更新至最新版本&#xff1f; 下載了 就是更新Google Chrome了

【AAAI 2025】 Local Conditional Controlling for Text-to-Image Diffusion Models

Local Conditional Controlling for Text-to-Image Diffusion Models&#xff08;文本到圖像擴散模型的局部條件控制&#xff09; 文章目錄 內容摘要關鍵詞作者及研究團隊項目主頁01 研究領域待解決問題02 論文解決的核心問題03 關鍵解決方案04 主要貢獻05 相關研究工作06 解決…

Kuka AI音樂AI音樂開發「人聲伴奏分離」 —— 「Kuka Api系列|中文咬字清晰|AI音樂API」第6篇

導讀 今天我們來了解一下 Kuka API 的人聲與伴奏分離功能。 所謂“人聲伴奏分離”&#xff0c;顧名思義&#xff0c;就是將一段完整的音頻拆分為兩個獨立的軌道&#xff1a;一個是人聲部分&#xff0c;另一個是伴奏&#xff08;樂器&#xff09;部分。 這個功能在音樂創作和…

Idea 設置編碼UTF-8 Idea中 .properties 配置文件中文亂碼

Idea 設置編碼UTF-8 Idea中 .properties 配置文件中文亂碼 一、設置編碼 1、步驟&#xff1a; File -> Setting -> Editor -> File encodings --> 設置編碼二、配置文件中文亂碼 1、步驟&#xff1a; File -> Setting -> Editor -> File encodings ->…

Xilinx FPGA PCIe | XDMA IP 核 / 應用 / 測試 / 實踐

注&#xff1a;本文為 “Xilinx FPGA 中 PCIe 技術與 XDMA IP 核的應用” 相關文章合輯。 圖片清晰度受引文原圖所限。 略作重排&#xff0c;未整理去重。 如有內容異常&#xff0c;請看原文。 FPGA&#xff08;基于 Xilinx&#xff09;中 PCIe 介紹以及 IP 核 XDMA 的使用 N…

sqli—labs第六關——雙引號報錯注入

一&#xff1a;判斷輸入類型 首先測試 ?id1&#xff0c;?id1&#xff0c;?id1"&#xff0c;頁面回顯均無變化 所以我們采用簡單的布爾測試&#xff0c;分別測試數字型&#xff0c;單引號&#xff0c;雙引號 然后發現&#xff0c;只有在測試到雙引號注入的時候符合關鍵…

【TroubleShoot】禁用Unity Render Graph API 兼容模式

使用Unity 6時新建了項目&#xff0c;有一個警告提示&#xff1a; The project currently uses the compatibility mode where the Render Graph API is disabled. Support for this mode will be removed in future Unity versions. Migrate existing ScriptableRenderPasses…

圖形學、人機交互、VR/AR、可視化等領域文獻速讀【持續更新中...】

&#xff08;1&#xff09;筆者在時間有限的情況下&#xff0c;想要多積累一些自身課題之外的新文獻、新知識&#xff0c;所以開了這一篇文章。 &#xff08;2&#xff09;想通過將文獻喂給大模型&#xff0c;并向大模型提問的方式來快速理解文獻的重要信息&#xff08;如基礎i…

Hadoop-HDFS-Packet含義及作用

在 HDFS&#xff08;Hadoop Distributed File System&#xff09;中&#xff0c;Packet 是數據讀寫過程中用于數據傳輸的基本單位。它是 HDFS 客戶端與數據節點&#xff08;DataNode&#xff09;之間進行數據交互時的核心概念&#xff0c;尤其在寫入和讀取文件時&#xff0c;Pa…

顯示的圖標跟UI界面對應不上。

圖片跟UI界面不符合。 要找到對應dp的值。UI的dp要跟代碼里的xml文件里的dp要對應起來。 藍湖里設置一個寬度給對應上。然后把對應的值填入xml. 一個屏幕上的圖片到底是用topmarin來設置&#xff0c;還是用bottommarin來設置。 因為第一節&#xff0c;5&#xff0c;7 車廂的…

【taro3 + vue3 + webpack4】在微信小程序中的請求封裝及使用

前言 正在寫一個 以taro3 vue3 webpack4為基礎框架的微信小程序&#xff0c;之前一直沒有記咋寫的&#xff0c;現在總結記錄一下。uniapp vite 的后面出。 文章目錄 前言一、創建環境配置文件二、 配置 Taro 環境變量三、 創建請求封裝四、如何上傳到微信小程序體驗版1.第二…