本人新手,经验比较少,想在一个项目中写一个数据库访问的类以后可以在项目里面调用,所以方法都写了静态的,不知道这样会有哪些问题或者缺点呢?请各位高手指点一下,让偶学习学习。也可以把大家好的方法分享一下让偶以后可以套用。public class DataMethod {
static{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(Exception e){
e.printStackTrace();
}
}
/**
* @return con
*/
public static Connection getCon(){
Connection con=null;
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=OnlineExam";
String user="";
String password="";
try{
con=DriverManager.getConnection(url,user,password);
}
catch(Exception e){
e.printStackTrace();
}
return con;
}
/**
* @param sql
* @return rs
*/
public static ResultSet uuery(String sql){
Statement stmt;
ResultSet rs=null;
Connection con=getCon();
try{
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
}
catch(Exception e){
e.printStackTrace();
}
return rs;
}
/**
* @param sql
* @return i
*/
public static int update(String sql){
Statement stmt;
int a=0;
Connection con=getCon();
try{
stmt=con.createStatement();
a=stmt.executeUpdate(sql);
}
catch(Exception e){
e.printStackTrace();
}
return a;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub }}
static{
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(Exception e){
e.printStackTrace();
}
}
/**
* @return con
*/
public static Connection getCon(){
Connection con=null;
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=OnlineExam";
String user="";
String password="";
try{
con=DriverManager.getConnection(url,user,password);
}
catch(Exception e){
e.printStackTrace();
}
return con;
}
/**
* @param sql
* @return rs
*/
public static ResultSet uuery(String sql){
Statement stmt;
ResultSet rs=null;
Connection con=getCon();
try{
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(sql);
}
catch(Exception e){
e.printStackTrace();
}
return rs;
}
/**
* @param sql
* @return i
*/
public static int update(String sql){
Statement stmt;
int a=0;
Connection con=getCon();
try{
stmt=con.createStatement();
a=stmt.executeUpdate(sql);
}
catch(Exception e){
e.printStackTrace();
}
return a;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub }}
使用完记得关闭!
------------------------------
请问下我应该在哪里关闭呢,另外问问用静态写的不是就初始化那么一个了么,如果关闭了后面的连接不是不可以用了吗?
catch{}
finally{try{conn.close()}catch(Exception e){}}
catch{}
finally{try{conn.close()}catch(Exception e){}}--------------------
呵呵,请问下用静态不是说才运行一次么,那不是con只有一个么,如果关了后面再请求这个方法还可以用么