java数据库操作公共类

来源:互联网 发布:中国砖瓦网络信息平台 编辑:程序博客网 时间:2024/04/30 05:08

 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();
   }
 }
}
 
 

原创粉丝点击