嗨,我发现了一个看似常见的问题,我无法与mysql数据库进行交互.找不到合适的驱动程序.我在同一个问题上跟随了大多数线程,但是我无法复制他们的解决方案,因此我发布了自己的具体问题.
(主要是这个帖子:我无法为MySQL加载JDBC驱动程序)
我的代码:
public DBManager(){
try {
//Class.forName("com.mysql.jdbc.Driver");
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
con=DriverManager.getConnection("jdbc:mysql:3306//localhost/test","root","root");
//con=DriverManager.getConnection(c);
if(!con.isClosed()) {
con.close();
}
}
catch (SQLException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
现在,我读到新的驱动程序,你不需要Class.forName()或registerDriver(); 我试过两个,但我仍然无法让它工作.
事情是在Windows机器上开发,使用eclipse Indigo和Connector/J 5.1.17
和使用相同连接器的远程linux上部署(和调试).
我正在启动我的调试会话
java -Xdebug -Xrunjdwp:transport = dt_socket,address = 8998,server = y -classpath /home/dev/mysql-connector-java-5.1.17-bin.jar -jar devserver.jar
我得到了那个例外.有帮助吗?
我来自一个沉重的c#开发环境,所以如果我必须干涉类路径等,请尝试逐步进行,因为我不太熟悉它.
SQLException:没有合适的驱动程序
只要DriverManager#getConnection()找不到给定连接URL的合适驱动程序,您就会收到此异常.当为任何已加载的驱动程序Driver#acceptsURL()返回时,会发生这种情况false.
实际上,您的连接URL是错误的:
jdbc:mysql:3306//localhost/test
应该是:
jdbc:mysql://localhost:3306/test
另请参阅MySQL JDBC手册.
MySQL Connector/J的JDBC URL格式如下,方括号([,])中的项是可选的:
Run Code Online (Sandbox Code Playgroud)jdbc:mysql://[host][,failoverhost...][:port]/[database] » [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...如果未指定主机名,则默认为127.0.0.1.如果未指定端口,则默认为3306,即MySQL服务器的默认端口号.
Run Code Online (Sandbox Code Playgroud)jdbc:mysql://[host:port],[host:port].../[database] » [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...如果未指定数据库,则将建立连接而不使用默认数据库.
| 归档时间: |
|
| 查看次数: |
1538 次 |
| 最近记录: |