package ShowInfo;
import java.sql.*;
import javax.swing.*;
import java.util.*;
public class DBPubClass extends JFrame{
private String[][] UserName=null;
String url = "jdbc:odbc:AddressBook";
private Connection conn;
private Statement stmt;
private ResultSet rs;
/*-------方法描述--------------*/
/*初始化得到数据库连接Connection*/
/*----------------------------*/
public DBPubClass()
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//ODBC的格式
conn=DriverManager.getConnection(url);//ODBC的格式
}
catch(ClassNotFoundException e)
{
System.err.println("fail to load JDBC/ODBC driver");
e.printStackTrace();
System.exit(1);
}
catch(SQLException ee)
{ System.err.println("fail to connect");
ee.printStackTrace();
}
}
/*-------方法描述--------------*/
/*得到表中的数据,返回ResultSet*/
/*----------------------------*/
public ResultSet getDataSet(String SelectSql) throws SQLException
{
stmt=conn.createStatement();
rs=stmt.executeQuery(SelectSql);
/*这里的conn和stmt不能关闭,否则ResultSet将提示“关闭状态”*/
/*conn.close();
stmt.close();*/
return rs;
}
/*-------方法描述--------------*/
/*得到表中的列名(字段名),返回Vector类型*/
/*----------------------------*/
Vector getColumn(ResultSet rs) throws SQLException
{ Vector columns=new Vector();
ResultSetMetaData rsmd=rs.getMetaData();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
{columns.addElement( rsmd.getColumnName( i ) );}
return columns;
}
/*-------方法描述--------------*/
/*得到表中的数据,返回Vector类型*/
/*----------------------------*/
Vector getRows(ResultSet rs) throws SQLException
{
Vector rows=new Vector();
boolean moreRecords=rs.next();
if(!moreRecords)
{
JOptionPane.showMessageDialog(this, "ResultSet has no records");
}
ResultSetMetaData rsmd=rs.getMetaData();
do {rows.addElement( getNextRow( rs, rsmd ) ); }
while ( rs.next() );
return rows;
}
private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd )throws SQLException
{
Vector currentRow = new Vector();
for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
switch( rsmd.getColumnType( i ) ) {
case Types.VARCHAR:
currentRow.addElement( rs.getString( i ) );
break;
case Types.INTEGER:
currentRow.addElement(new Long( rs.getLong( i ) ) );
break;
default:
System.out.println( "Type was: " + rsmd.getColumnTypeName( i ) );
}
return currentRow;
}
/*-------方法描述--------------*/
/*关闭数据库连接和statement*/
/*----------------------------*/
void closed() throws SQLException
{
conn.close();
stmt.close();
}
/*-------方法描述--------------*/
/*以二维数组的方式得到表中的数据,error!!!*/
/*----------------------------*/
String[][] GetUserName(ResultSet rs)
{
int i=0;
try
{ ResultSetMetaData rsmd=rs.getMetaData();
while(rs.next())
{ for(int j=0;j<rsmd.getColumnCount()-1;j++)
{UserName[i][j]=rs.getString(j+1);}
i++;
}
}
catch(SQLException ee)
{ ee.printStackTrace();
}
return UserName;
}
/*-------方法描述--------------*/
/*更新数据表中的数据*/
/*插入数据表中的数据*/
/*删除数据表中的数据*/
/*----------------------------*/
public void Excute(String UpdateSql)
{
try
{ Statement stmt=conn.createStatement();
stmt.executeUpdate(UpdateSql);
stmt.close();
conn.close();
}
catch(SQLException ee)
{
ee.printStackTrace();
}
}
}