andysern 2016-06-26 13:34 采纳率: 6.3%
浏览 1353

在java中,需要关心数据库连接的并发情况吗?

因为做了数据库的连接类

最近在使用的时候倒是没有什么问题,但是个人考虑在访问增多以后,这样的数据库连接是否
需要考虑并发的问题?不然会出现异常。因为在个人测试的时候,如果在调用一个ft_con类
后,在调用过程中,如果在没有关闭之前,会碰到rs空指针的情况。

但是,是否没一个请求(session)都是单独的,在服务器端会生成一个ft_con的单独实例。所以
不会产生并发问题?

望大家给些指导,还请教一下,这样的写法有没有什么潜在问题?是否具有通用性呢?

public ft_con(){
if(conn==null){
try{
//Class.forName("com.microsoft.sqlserver.jdbc"); 基本不使用。
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //看是否引入数据包成功
Class.forName("com.mysql.jdbc.Driver");
}

    catch(Exception ex){

        System.out.println(ex);

    }
    try{
        conn = DriverManager.getConnection(url,user,password);     //创建连接

        }
    catch(Exception ex){
        System.out.println("connection create false");                  //连接不成功则输出
        System.out.println(ex);     

        }   
    }

}

public Connection getConn(){
    return conn;
    }

public void Set_st(){
    try{
    st = conn.createStatement();
    }catch(Exception ex){
        System.out.println("无法创建statement");
        System.out.println(ex);
    }
}

public ResultSet getRs(String sql){
    try{
        rs = st.executeQuery(sql);
    }catch(Exception ex){
        ex.printStackTrace();
    }
    return rs;
}

public int updata(String sql){
    int num=0;
        try{
            num = st.executeUpdate(sql);
            }catch(SQLException e){
            e.printStackTrace();
            }
        return num;
} 

public void close(){
    try{
        if(rs!=null){
            rs.close();
            rs = null;
            }
        if(st!=null){
            st.close();
            st = null;
            }
        if(conn!=null){
        conn.close();
        conn = null;
            }           
        }catch(SQLException e){
        e.printStackTrace();
            }
}
  • 写回答

3条回答 默认 最新

  • threenewbee 2016-06-26 14:24
    关注

    如果你编写的代码会被多线程调用,并且调用了线程不安全的代码,或者有共享的变量,当然需要考虑并发问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)