我正在尝试设置mySQL连接器,但不确定出了什么问题。这是错误:
SQLException: No suitable driver found for jdbc:mysql://localhost/db?user=root&password=
这是我的Java:
// ESTABLISH DRIVER INSTANCE
try {
// The newInstance() call is a work around for some
// broken Java implementations
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) {
// handle the error
}
// ESTABLISH DB CONNECTION
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost/db?" +
"user="+user+"&password="+pass);
// Do something with the Connection
//
//
} catch (SQLException ex) {
// handle any errors
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
这是我的构建.xml:
<project>
<target name="run">
<javac srcdir="." destdir=".">
<classpath>
<pathelement path="./mysql-connector-java-5.1.38i/mysql-connector-java-5.1.38-bin.jar"/>
<pathelement location="./DB_Test.class"/>
</classpath>
</javac>
<java classname="DB_Test">
<classpath>
<pathelement path="./mysql-connector-java-5.1.38i/mysql-connector-java-5.1.38-bin.jar"/>
<pathelement location="."/>
</classpath>
</java>
</target>
</project>
我认为问题可能出在构建中.xml因为我对蚂蚁非常缺乏经验。我不确定这两个"路径元素路径"是否都是必要的,或者它们中的任何一个是否有效。我想知道我是否需要仅仅为了这个罐子而诉诸日食。
我也认为我的连接 url 语法可能存在问题。"db"是连接的名称吗?还是架构?我需要在本地主机后面有一个端口号吗?
也许你可以把它改成
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/XX","root","yourpassword"
我的问题是我没有正确地将 jar 添加到类路径中。我尝试了命令行,使用 -cp 参数,它有效。我发现这很有帮助。
如果您在命令控制台中以"普通香草"的方式执行此操作,则需要在 -cp 或 -classpath 中指定 JAR 文件的路径 参数在执行 Java 应用程序时。
java -cp .;/path/to/mysql-connector.jar com.example.YourClass
. 只是将当前目录添加到类路径中,作为 好,这样它就可以找到com.example.YourClass和;是 类路径分隔符,就像它在 Windows 中一样。在Unix和克隆中:应该 被使用。