在连接到MySQL数据库时,我执行以下步骤Connectioncon=null;Resultsetrs=null;Statementst=null;Class.forName("com.mysql.jdbc.Driver").newInstance();con=DriverManager.getConnection("jdbc:mysql://localhost:3306/database","root","passwp");其实我想知道Class.forName("com.mysql.jdbc.Driver").newInstance();语句是做什么的。尽管这个类不在mysql.j
以下是2个代码片段第一个使用ClassLoader类加载指定的类ClassLoadercls=ClassLoader.getSystemClassLoader();类someClass=cls.loadClass("TargetClass");第二个使用Class.forName()加载指定的类Classcls=Class.forName("TargetClass");上述方法有什么区别。哪个用于哪个目的? 最佳答案 其他答案非常完整,因为它们探索了Class.forName(...)的其他重载。,并讨论使用不同ClassLoade
以下是2个代码片段第一个使用ClassLoader类加载指定的类ClassLoadercls=ClassLoader.getSystemClassLoader();类someClass=cls.loadClass("TargetClass");第二个使用Class.forName()加载指定的类Classcls=Class.forName("TargetClass");上述方法有什么区别。哪个用于哪个目的? 最佳答案 其他答案非常完整,因为它们探索了Class.forName(...)的其他重载。,并讨论使用不同ClassLoade
我正在尝试使用SQLite数据库创建一个简单的应用程序。我选择使用SQLiteJDBCdriver.以下代码取自上述网站。我的问题是关于publicstaticvoidmain之后的行...内容为:Class.forName("org.sqlite.JDBC");我的问题是,这条线是什么意思?它有什么作用?它似乎没有连接到代码的其余部分。Class.forName()应该返回一个类,但该行似乎在正文中是独立的。我可以看到它返回的任何内容都不会被代码的另一部分使用。请帮助澄清这一点。提前致谢。publicclassTest{publicstaticvoidmain(String[]arg
我正在尝试使用SQLite数据库创建一个简单的应用程序。我选择使用SQLiteJDBCdriver.以下代码取自上述网站。我的问题是关于publicstaticvoidmain之后的行...内容为:Class.forName("org.sqlite.JDBC");我的问题是,这条线是什么意思?它有什么作用?它似乎没有连接到代码的其余部分。Class.forName()应该返回一个类,但该行似乎在正文中是独立的。我可以看到它返回的任何内容都不会被代码的另一部分使用。请帮助澄清这一点。提前致谢。publicclassTest{publicstaticvoidmain(String[]arg
我有一个嵌套的静态类,比如:packagea.bpublicclassTopClass{publicstaticclassInnerClass{}}我想用Class.forName()进行实例化,但它会引发ClassNotFoundException。Class.forName("a.b.TopClass");//Worksfine.Class.forName("a.b.TopClass.InnerClass");//raisesexceptionTopClass.InnerClassinstance=newTopClass.InnerClass();//worksfine我的代码有什
我有一个嵌套的静态类,比如:packagea.bpublicclassTopClass{publicstaticclassInnerClass{}}我想用Class.forName()进行实例化,但它会引发ClassNotFoundException。Class.forName("a.b.TopClass");//Worksfine.Class.forName("a.b.TopClass.InnerClass");//raisesexceptionTopClass.InnerClassinstance=newTopClass.InnerClass();//worksfine我的代码有什
如果我使用try{Class.forName("my.package.Foo");//itexistsontheclasspath}catch(ClassNotFoundExceptione){//itdoesnotexistontheclasspath}“Foo”的静态初始化block被启动。有没有办法在不启动静态初始化程序的情况下确定类“my.package.Foo”是否在类路径中? 最佳答案 尝试Class的forName(Stringname,booleaninitialize,ClassLoaderloader)方法,设置
如果我使用try{Class.forName("my.package.Foo");//itexistsontheclasspath}catch(ClassNotFoundExceptione){//itdoesnotexistontheclasspath}“Foo”的静态初始化block被启动。有没有办法在不启动静态初始化程序的情况下确定类“my.package.Foo”是否在类路径中? 最佳答案 尝试Class的forName(Stringname,booleaninitialize,ClassLoaderloader)方法,设置
forName方法与registerDriver加载和注册JDBC驱动程序有什么区别? 最佳答案 Class.forName()根本与JDBC没有直接关系。它只是加载一个类。大多数JDBC驱动程序类通过调用registerDriver()在其静态初始化程序中注册自己。.registerDriver()是您几乎不需要自己调用的真正调用(除非您编写自己的JDBC驱动程序)。请注意,在JDBC4中,如果您的JDBC驱动程序是最新的,则您应该不需要其中任何一个,因为可以使用服务定位机制找到驱动程序(即,只需忽略像往常一样打电话并打开您的连接