相关疑难解决方法(0)

为什么调用Class.forName("com.mysql.jdbc.Driver")注册MySQL for JDBC?

正如"Class.forName()"和"Class.forName().newInstance()"之间的区别所解释的那样,Class.forName()方法执行以下操作:

调用Class.forName(String)返回与具有给定字符串名称的类或接口关联的Class对象

但是,如果它只是这样做,为什么需要调用这个方法才能将MySQL与Java一起使用呢?没有它我得到以下错误:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/calender
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at Database.main(Database.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Run Code Online (Sandbox Code Playgroud)

java mysql jdbc

3
推荐指数
1
解决办法
1227
查看次数

了解自动加载Jdbc驱动程序的Java服务提供程序机制

我试图准确地了解Java的服务提供程序机制如何工作以找到适当的JDBC驱动程序.这是我到目前为止:

由于Class.ForName不再用于显式加载JDBC Driver,因此Java会从传递给getConnection方法的数据库url字符串中知道它需要什么类型的驱动程序.例如,连接到oracle数据库的数据库url将是这样的:

public static final String DB_URL = "jdbc:oracle:thin@//localhost:1521/ORCL";
Run Code Online (Sandbox Code Playgroud)

然后,DriverManager将在projects类路径中指定的jar中查找oracle驱动程序的实现.它会在META-INF/Services每个jar的目录中查找驱动程序配置文件(其中将是实际驱动程序类的名称).在Class Loader将加载它找到的第一个比赛而忽略其他.

以上工作准确吗?如果我错过了什么或者出了什么问题,请告诉我.

java service drivers jdbc

2
推荐指数
1
解决办法
811
查看次数

将Java Applet连接到MySQL DB - 通信链接失败

我正在尝试将我的Java Applet连接到MySQL数据库.我知道它有效,因为我可以在localhost上连接到它,它可以很好地检索记录列表.但是,当我把它放在互联网上时,它不起作用.

这是我的小程序:http://mystikrpg.com/play

它已签名,但我一直收到以下异常:

SQLException获取原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败

成功发送到服务器的最后一个数据包是0毫秒前.驱动程序未收到来自服务器的任何数据包.

怎么会发生这种情况,我该怎么做才能解决这个问题呢?

这是applet的源代码:http://sodan.pastebin.com/jWKTgBSU

php java mysql jdbc

1
推荐指数
1
解决办法
4299
查看次数

Class.forName("Something")和Class.forName("Something")之间的区别.newInstance();

有什么区别Class.forName("Something");Class.forName("Something").newInstance();请澄清我.

java

-4
推荐指数
1
解决办法
309
查看次数

标签 统计

java ×4

jdbc ×3

mysql ×2

drivers ×1

php ×1

service ×1