用jdbc鏈接數據庫時老是會出現以下問題html
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:911)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3953)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Main.main(Main.java:33)java
出現上面問題無非是兩個問題mysql
第一,就是你的數據庫的用戶名和密碼與java中的要鏈接的用戶名和密碼不一致sql
檢查你的數據庫的用戶名和密碼數據庫
就是要注意下面的 c = DriverManager.getConnection() 注意看下面的代碼就好了,你能夠嘗試用下面的代碼進行嘗試測試
package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class TestJDBC { public static void main(String[] args) { try { Class.forName("com.mysql.jdbc.Driver"); // 創建與數據庫的Connection鏈接 // 這裏須要提供: // 數據庫所處於的ip:127.0.0.1 (本機) // 數據庫的端口號: 3306 (mysql專用端口號) // 數據庫名稱 how2java // 編碼方式 UTF-8 // 帳號 root // 密碼 admin Connection c = DriverManager .getConnection( "jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8", "root", "admin"); System.out.println("鏈接成功,獲取鏈接對象: " + c); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
第二個,就是最早開始注意的問題,就是加入jar包編碼
這個jar包很重要,由於這是別人寫好的直接引用的,是完美的代碼,咱們只用引用就可。spa
在項目裏面新建一個folder命名爲lib,把jar包拷到裏面去;而後還要手動把jar包導入進入,這點很重要,我就是犯了這種錯誤。code
還有就是還有最重要的一點就是要初始化驅動,檢查導包是否成功!!!視頻
public class TestJDBC { public static void main(String[] args) { //初始化驅動 try { //驅動類com.mysql.jdbc.Driver //就在 mysql-connector-java-5.0.8-bin.jar中 //若是忘記了第一個步驟的導包,就會拋出ClassNotFoundException Class.forName("com.mysql.jdbc.Driver"); System.out.println("數據庫驅動加載成功 !"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
若是上述內容還不是那麼清楚,請借鑑以下
http://how2j.cn/k/jdbc/jdbc-statement/387.html#nowhere
裏面有豐富的測試代碼,以及配套視頻