首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现java 8 DriverAction接口

实现java 8 DriverAction接口
EN

Stack Overflow用户
提问于 2018-10-09 22:47:33
回答 1查看 225关注 0票数 0

我正在运行简单的JDBC演示程序,其中我使用了DriverAction接口和它的注销方法来测试它的功能,但我收到了我的Dirver类的错误,请找到下面的代码并建议遗漏了什么。

//error -com.mysql无法解析为类型错误

代码语言:javascript
复制
import java.sql.*;

public class Jdbcexample implements DriverAction {

    public static void main(String[] args) {
        try {
        Driver driver = new com.mysql.jdbc.Driver();/*com.mysql can not be resolve to type error */
        DriverAction driveraction = new Jdbcexample();
        DriverManager.registerDriver(driver,driveraction);
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","root");
        Statement stmt =con.createStatement();
        ResultSet rs =stmt.executeQuery("select* from user");
        while(rs.next()) {
            System.out.println(rs.getInt(1)+""+rs.getString(2)+""+rs.getString(3));
        }
        con.close();
    DriverManager.deregisterDriver(driver);
        }
        catch(Exception e) {
            System.out.println(e);
        }

}

    @Override
    public void deregister() {
        System.out.println("Driver is deregistered");

    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-10-10 00:14:44

该错误本身意味着在编译代码时类路径上没有驱动程序。然而,更大的问题是你不应该这样做。

DriverManager.registerDriver方法是供用户程序调用的而不是。它们用于JDBC驱动程序注册自身。DriverManager.registerDriver(Driver, DriverAction)是一个回调机制,让驱动程序在注销时执行额外的工作。

在javadoc中:

DriverManager注册给定的驱动程序。新加载的驱动程序类应该调用方法registerDriver,以使DriverManager知道它自己。如果驱动程序当前已注册,则不会执行任何操作。

重要的部分是“新加载的驱动程序类应该调用registerDriver方法,以使本身成为DriverManager所知的。”

DriverAction

Driver想要从DriverManager得到通知时,必须实现的接口。

因此,它是针对JDBC驱动程序本身的,而不是针对用户程序的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52723831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档