java与mssql连接,并取出查询所得数据放入数组中,这样关闭数据库时页面还是可以调用数据
package bean;
import java.sql.*;
import java.util.*;
public class DbConn {
Vector dsVector=new Vector();
int rowCount=0;
int colCount=0;
public String[] type=null;
boolean flag=true;
public String[][] getData(String sql){
String dsString[][]=new String[rowCount][colCount];
if(flag==true){
dsString=null;
}else{
for (int i=0;i<rowCount;i++){
Vector row=new Vector();
row=(Vector)dsVector.get(i);
for(int j=0;j<colCount;j++){
dsString[i][j]=(String)row.get(j);
}
}
}
return dsString;
}
public static Connection getconn(){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=DBname";
String user="sa";
String psw="sa";
Connection conn=null;
try {
conn=DriverManager.getConnection(url,user,psw);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void closeConn(Connection conn){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void update(String sql){
Connection conn=DbConn.getconn();
Statement stmt=null;
try {
stmt=conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
try {
stmt.execute(sql);
} catch (SQLException e) {
System.out.print(e.getErrorCode());
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}finally{
DbConn.closeConn(conn);
}
}
public void query(String sql){
Connection conn=DbConn.getconn();
Statement stmt=null;
ResultSet rs=null;
try {
stmt=conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
try {
rs=stmt.executeQuery(sql);
while(rs.next()){
flag=false;
rowCount++;
ResultSetMetaData rsmd= rs.getMetaData();
Vector row=new Vector();
colCount=rsmd.getColumnCount();
for( int i= 0; i<colCount; i++){
row.add(rs.getString(i+1));
}
dsVector.add(row);
}
} catch (SQLException e) {
System.out.print(e.getErrorCode());
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}finally{
DbConn.closeConn(conn);
}
}
}

