今天无意中注释了Class.forName("dm.jdbc.driver.DmDriver"); 反射加载驱动程序的代码,结果程序还是能正常查询数据库数据进行返回,
有点颠覆了我之前写demo的时候会用到这个来测试,必须要写Class.forName("dm.jdbc.driver.DmDriver");才能正常的访问数据,
我的测试代码如下:(我用的是达梦数据库测试的)
package org.example;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;/** * @Description TODO * @Author Harry * @Date 2020/12/25 14:28 **/public class TestDmJdbc { public static void main(String[] args) { Connection con = null;// 创建一个数据库连接 PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement ResultSet result = null;// 创建一个结果集对象 try {// Class.forName("dm.jdbc.driver.DmDriver");// 加载驱动程序 System.out.println("开始尝试连接数据库!"); String url = "jdbc:dm://localhost:5236/GEN?useUnicode=true&characterEncoding=UTF-8";// 127.0.0.1是本机地址 String user = "GEN";// 用户名,系统默认的账户名 String password = "123456789";// 你安装时选设置的密码 con = DriverManager.getConnection(url, user, password);// 获取连接 System.out.println("连接成功!"); String sql = "select * from gen_test1";// 预编译语句,“?”代表参数 pre = con.prepareStatement(sql);// 实例化预编译语句 //pre.setString(1, "303");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引 result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数 while (result.next()) // 当结果集不为空时.........