开发者社区> 问答> 正文

连接数据库的代码方面的问题?

java小白想问一下:

  ①  public static synchronized Connection getConnection()
             throws NamingException, SQLException {
         Context context = new InitialContext();
         DataSource ds = (DataSource) context
                 .lookup("java:/comp/env/jdbc/DBPool");
         Connection conn = ds.getConnection();
         return conn;
     } 

②public static synchronized Connection getConnection()
             throws NamingException, SQLException {
         Connection conn = null;
         try {
             Context context = new InitialContext();
             DataSource ds = (DataSource) context
                     .lookup("java:/comp/env/jdbc/DBPool");
              conn = ds.getConnection();
         } catch (Exception e) {
             e.printStackTrace();
         }finally{
             conn.close();
         }
         return conn;
     } 

以上这两段代码:①没什么可说,可是我不想在方法上抛出异常而是想在程序里,就是用方法②,结果抛出空指针异常,也就是return conn时对应的conn是空的,但是我把“Connection conn = null;”挪到程序里变成“Connection conn = ds.getConnection();”则下面提示我conn没有定义,因此我想问一下,如果我想在内部抛出异常代码该怎么写?

此外:这个return到底应该return什么样的?对象,方法,值什么的都可以吗?

展开
收起
爵霸 2016-06-13 13:20:27 1901 0
1 条回答
写回答
取消 提交回答
  • finally关闭conn的时候要判断一下conn!=null在关闭,然后在掉这个getConnection方法返回conn的时候,同样判断一下是否为空就ok了吧。。。

    2019-07-17 19:35:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载