java数据库操作公共类

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值