代码中的错误:java.sql.SQLException:找不到适合TEST / ANKUR的驱动程序

时间:2011-06-29 10:09:48

标签: java mysql

package javaapplication1;
import java.sql.*;
public class JavaApplication1{
  public static void main(String[] args) {
  System.out.println("MySQL Connect Example.");
  Connection conn = null;
  String url = "jdbc:mysql://localhost:3306/TEST/ANKUR1";
  String dbName = "jdbctutorial";
  String driver = "com.mysql.jdbc.Driver";
  String userName = "root"; 
  String password = "root";
  try {
  Class.forName(driver).newInstance();
  conn = DriverManager.getConnection("TEST1/ANKUR","root","school");
  System.out.println("Connected to the database");
  conn.close();
  System.out.println("Disconnected from database");
  } catch (Exception e) {
      System.out.println(e);
  }
  }
}

我在我的机器上安装了MySQL 5.5,并将Java-connector.jar文件复制到所需的文件夹中。我的数据库是test1,表格是ankur。请参阅我使用此代码来检查与NetBeans 7的连接。有任何建议吗?

2 个答案:

答案 0 :(得分:0)

您在getConnection(...)中实际使用的网址是错误的。您不应该只输入要使用的表的名称。您需要有一个完整的URL,以便JDBC系统知道它应该使用mysql驱动程序以及mysql驱动程序需要连接的位置。

重新检查您复制的示例,并查看他们使用“url”变量的位置。

答案 1 :(得分:0)

使用MySQL Connector / J驱动程序时JDBC URL format为:

  

JDBC:MySQL的:// [主机] [,... failoverhost]:[?propertyName1] [端口] / [数据库] [= propertyValue1] [&安培; propertyName2] [= propertyValue2] ...

因此,您的案例中应使用的实际URL应该是(如果数据库安装在本地计算机上,名称为TEST并且侦听默认的MySQL端口3306):

  

JDBC:MySQL的://本地主机:3306 / TEST

而不是以下。

  

TEST / ANKUR1

请记住,DriverManager类使用JDBC URL来确定应该使用哪个驱动程序连接到数据库,以及数据库所在的位置。一个不连接到JDBC中的表;相反,一个连接到数据库(或模式),然后发出针对表的SELECT查询。因此,您的方法如下:

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/TEST","root","school");
System.out.println("Connected to the database");
PreparedStatement pStmt = conn.prepareStatement("SELECT * FROM ANKUR");
ResultSet rs = pStmt.executeQuery();
...
//Process the contents of the ResultSet
...
rs.close();
pStmt.close();
conn.close();

应该注意,最好关闭finally块中的ResultSetPreparedStatementConnection个对象。