關於本地安裝mysql請參考我的上一篇博客:
https://www.cnblogs.com/cckong/p/13977440.html
下面我來一步一步教大家你的java程序如何通過JDBC鏈接上數據庫!
1.確保你的mysql已經添加進環境變量
參考這篇 https://jingyan.baidu.com/article/3052f5a1e23d6997f31f860c.html
此步驟的功能是讓任何人都可以訪問mysql
不需要以管理員身份才能訪問
2.下載Mysql的jar包並放進IDEA
參考 https://www.runoob.com/java/java-mysql-connect.html
這篇博客前半段有下載地址 (注意下載與你mysql對應版本jar包)
下載成功后我們導入idea
如下打開
點擊SDKs
點擊+號添加對應jar包
添加成功后 最后應在
3.接着我們向數據庫中寫點東西 來證明鏈接是否成功
(具體mysql語句 參考https://www.runoob.com/mysql/mysql-create-database.html)
4.我們來驗證一下
其中的 conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useSSL=FALSE" ,"root","");
需要注意的是要改成你的 conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:端口號/數據庫名稱?test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useSSL=FALSE" ,"你的登錄名(一般是root)","你的密碼")
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class test { public static void main(String[] args) { ResultSet rs = null; Statement stmt = null; Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useSSL=FALSE" ,"root",""); stmt = conn.createStatement(); rs = stmt.executeQuery("select * from tablename1"); while (rs.next()) { // 根據字段名獲取相應的值 // String name = rs.getString("name"); // String sex = rs.getString("sex"); int age = rs.getInt("age"); // 輸出查到的記錄的各個字段的值 System.out.println( " " + age); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); rs = null; } if (stmt != null) { stmt.close(); stmt = null; } if (conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } } }
5.輸出 成功!
踩坑過程:
(1)timezone問題
在url中加入一個語句 "jdbc:mysql://localhost:3306/test?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useSSL=FALSE"。
(2)Access denied for user ''@'localhost' (using password: NO)問題
有可能是我當初沒有設置環境變量問題
也有可能 我那個代碼復制過來的getconnection的參數問題