`

为什么要用class.forname().newInstance()而不用new

阅读更多
使用new关键字时你得保证import了这个驱动类才行,而使用class.formname时你只要保证引用了驱动的jar包就行了。
如果用new的话,当工程改变了数据库,你得修改.java文件和引入相应的驱动包。
而使用class.formname时可以将驱动的类配置在xml文件中。加载驱动对象时修改xml和引入jar包就行.
newInstance: 弱类型。低效率。只能调用无参构造。
分享到:
评论

相关推荐

    Class.forName

    使用`Class.forName()`的一个常见场景是,当你有一个字符串变量,代表一个类的全名,但你不知道具体是什么类,这时可以使用`forName()`动态地加载这个类。例如: ```java String className = "com.example.MyClass"...

    Class.forName()_newInstance()_New_三者区别

    在Java编程中,`Class.forName()`, `newInstance()` 和 `new` 关键字都是与对象创建和类加载紧密相关的概念,但它们各自有着不同的用途和限制。 首先,`Class.forName("className")` 是一个静态方法,它用于在运行...

    class literal & instance.getClass() & Class.forName(String className)

    我们可以使用class literal来获取类的元数据,如类名、接口实现、父类等,也可以用于创建类的新实例(通过`newInstance()`方法,前提是该类有无参构造器)。 接着,我们讨论 "instance.getClass()"。这个方法是每个...

    Java Class.forName()用法和newInstance()方法原理解析

    Class.forName()方法的用法可以分为两种,一种是使用Class.forName()方法加载类,然后使用newInstance()方法实例化该类,另一种是使用new关键字实例化类。两种方法的效果是一样的,但是它们的实现机制不同。Class....

    jdbc驱动程序实例

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; // orcl为数据库的SID String user = "test"; String password = "test"; Connection ...

    java中Class.forName的作用浅谈

    在Java编程语言中,`Class.forName()`方法是一个非常重要的功能,它主要用于动态加载类到Java虚拟机(JVM)中。这个方法的主要作用是根据给定的全限定类名(包括包名和类名)来查找并加载对应的类。下面我们将深入...

    Classfor的用法

    `Class.forName` 经常与 `newInstance` 方法配合使用,以实现动态创建对象的目的。`newInstance` 方法用于创建 `Class` 对象所表示的类的实例。 **示例**: ```java try { Class<?> clazz = Class.forName(...

    jdbc笔记整理 sql

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //Sql Server7.0/2000 数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); //DB2 数据库 Class.froName(...

    java于各种数据库连接额语句

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; // orcl 为数据库SID String user = "test"; String password = "test"; ...

    new关键字和newInstance() 的区分

    例如,`A a = (A) Class.forName("pacage.A").newInstance();` 就是使用 newInstance() 方法创建了一个 A 类的对象。newInstance() 方法的作用是加载一个类,并创建一个新的对象。 从本质上讲,new 关键字和 new...

    liuwei1989#study-guide#17-Class.forName和classloader的区别1

    并且只有调用了newInstance()方法采用调用构造函数,创建类的对象看下Class.forName()源码//Class.forName(String c

    forname实现工程内部反射机制

    在“forname实现工程内部反射机制”这个主题中,我们将深入探讨如何利用`Class.forName()`方法来实现对工程内部类的动态访问。 首先,让我们了解`Class.forName()`的基本用法。这个方法接收一个字符串参数,该参数...

    newInstance()方法和new关键字

    - **newInstance()方法**自Java 9起已被标记为过时,推荐使用`Class<T>::getDeclaredConstructor().newInstance(args)`的方式来替代。 - 在实际开发中,通常优先考虑使用`new`关键字,因为它更加简洁且易于理解和...

    mysql-connector-java-3.0.14-production-bin.jar

    mysql4.1.10的JDBC驱动 把它拷贝到你的web应用的WEB-INF\lib下(当然也可以设置CLASSPATH) <br>接着修改程序代码: 将你的: Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 改为: ...

    JDBC访问数据库步骤

    * Oracle 数据库(thin 模式):`Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();` * SQL Server 数据库:`Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();` * ...

    使用JDBC连接各种数据库总结

    - Oracle:`Class.forName("oracle.jdbc.driver.OracleDriver").newInstance()` - SQL Server:`Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance()` - DB2:`Class.forName(...

    java数据库连数语法

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String user = "test"; String password = "test"; Connection conn = ...

    access jar驱动连接数据库

    access jar驱动连接数据库

    JAVA数据库大全.pdf

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String user = "test"; String password = "test"; Connection conn = DriverManager....

    JDBC连接的方式大全

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; // orcl为数据库SID String user = "test"; String password = "test"; Connection conn...

Global site tag (gtag.js) - Google Analytics