最近由于工作需要,在努力学习Eclipse编程,其中学到用MyEclipse+Mysql方式实现一个网络编程,在这个过程中,在配置MyEclipse的JDBC连接时遇到一个问题,系统总是提示error while performing database login with the user_login driver check your url错误的问题。一开始我下载的是mysql-connector-java-8.0.13版本,后又尝试下载了mysql-connector-java-5.1.47、mysql-connector-java-5.1.34两个版本,皆提示相应的问题,最后认为应该不是安装包的问题。
我先是下载了最新的8.0.13版本,显示8.0.13版本加载后则没有自动带入Driver classname相关信息。
这样在8.0.13版本下TestDriver按钮始终点击不了,next finish按钮也操作不了,学习进入了一个僵局。
而后我有先后使用了5.1.47、5.1.34两个版本过程,系统自动带出的Driver classname都是com.mysql.fabric.jdbc.FabricMySQLDriver
但是在进行TestDriver总是提示error while performing database login with the user_login driver check your url,学习也卡住了一段时间。
为了解决这个问题,网上找个各种办法,好几天后没有解决。今天无意中看到一篇文章,写到,出现这个问题,可能问题出在driver ClassName上,add mysql jar包后最自动填入此名称为com.mysql.fabric.jdbc.FabricMySQLDriver。这个是不对的,应该 com.mysql.jdbc.Driver。即可解决提示错误连接不上的问题。
文章出处:https://blog.csdn.net/pmt1982/article/details/38336131
※※ 解决办法就是手工把com.mysql.fabric.jdbc.FabricMySQLDriver改为com.mysql.jdbc.Driver,测试就通过了,真是个坑爹的玩意,不知道为什么会出现这个,我还特地查了一下 com.mysql.fabric.jdbc.FabricMySQLDriver,说是什么高可用方案。但没有说需要手工调整一下。
附上测试通过的源代码
package dbtest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class TestDataBase {
Connection con;
Statement stmt;
ResultSet rs;
public TestDataBase(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost:3306/user_login";
System.out.println();
System.out.println("成功加载驱动");
con= DriverManager.getConnection(url,"root","lcx791002");
System.out.println("成功连接数据库!");
}catch(Exception e){
System.out.println(e.getMessage());
}
}
public void dispResult(){
try{
stmt = con.createStatement();
rs = stmt.executeQuery("select
* from user");
String temp = null;
System.out.println("表中记录如下:");
while(rs.next()){
temp = rs.getString(1)+"\t"+rs.getString(2);
System.out.println(temp);
}
con.close();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
public static void main(String[] args) {
new TestDataBase().dispResult();
}
}