因为做了数据库的连接类
最近在使用的时候倒是没有什么问题,但是个人考虑在访问增多以后,这样的数据库连接是否
需要考虑并发的问题?不然会出现异常。因为在个人测试的时候,如果在调用一个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();
}
}