weixin_42501999 2012-12-05 12:23
浏览 293
已采纳

编写JDBC连接数据库方法时将方法声明为synchronized方法的必要性具体体现在什么场景?

例如这么一个方法
[code="java"]
public static synchronized Connection getCon() throws Exception{
try{
Class.forName(dirvername);
con.DriverManager.getConnection(url);
return con;
}catch(SQLException e){
System.err.println(e.getMessage());
throw e;
}
}
[/code]
RT,如果synchronized不加的话,有可能出现哪些场景使程序出错?

  • 写回答

2条回答 默认 最新

  • jinnianshilongnian 2012-12-05 12:25
    关注

    不用加

    Class.forName(dirvername); 在加载类时会执行一段static代码,如oracleDriver

    static
    {
    Timestamp localTimestamp = Timestamp.valueOf("2000-01-01 00:00:00.0");
    try
    {
    if (defaultDriver == null)
    {
    defaultDriver = new OracleDriver();

    [color=red] DriverManager.registerDriver(defaultDriver);
    [/color] }

    }
    catch (RuntimeException localRuntimeException)
    {
    }
    catch (SQLException localSQLException)
    {
    }
    
    _Copyright_2004_Oracle_All_Rights_Reserved_ = null;
    

    }

    static方法会有类加载器保证 线程安全

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码