为了账号安全,请及时绑定邮箱和手机立即绑定

把DBHelper类的加载数据库驱动的静态代码块注释后一样可以得到数据库连接对象

即,把static{...}这部分注释掉,运行带main方法的DBHelper类,一样打印数据库连接正常,难道不用加载数据库驱动也能建立连接?54b7361b0001909805000396.jpg

正在回答

4 回答

对,你可以用输出语句看看是否为null,System.out.println(conn);

对这个题目来说,conn是不允许为空的,否则后面就没办法使用了

0 回复 有任何疑惑可以回复我~
#1

Justicer_P 提问者

非常感谢!
2015-01-20 回复 有任何疑惑可以回复我~
public static Connection getInstance() throws SQLException {
    if (null == conn) {
        synchronized (DBHelper.class) {
            if (null == conn) {
                conn = DriverManager.getConnection(url, username, password);
            }
        }
    }
    return conn;
}


0 回复 有任何疑惑可以回复我~

应该是主方法中判断的问题,conn对象是不为空的。看getConnection()方法的代码,当数据库对象为空是建立一个Connection的对象,所以conn对象永远不为空。当在主方法判断时,当然就输出成功了。但是因为没有加载驱动,所以会发生异常。

0 回复 有任何疑惑可以回复我~
#1

Justicer_P 提问者

意思是,即使没有加载驱动,conn = DriverManager.getConnection(url, username, password);还是会得到一个不为空的conn?
2015-01-16 回复 有任何疑惑可以回复我~

有没有抛出异常信息。

0 回复 有任何疑惑可以回复我~
#1

Justicer_P 提问者

没有抛出异常信息。但是在后面在JSP上调用DBHelper得到连接对象的时候有异常,说是无法找到连接驱动。但是在这个DBHelper类里面运行main方法,却可以的得到连接对象,真是奇怪。
2015-01-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JAVA遇见HTML——JSP篇
  • 参与学习       248282    人
  • 解答问题       3071    个

Java Web入门级教程JSP,带你轻松的学习JSP基础知识

进入课程

把DBHelper类的加载数据库驱动的静态代码块注释后一样可以得到数据库连接对象

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信