⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbmanager.java

📁 用JAVA编译的一个简单的通讯录
💻 JAVA
字号:
package org.addressbook.sql;

import java.sql.*;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;

public class DBManager extends AbstractTableModel{

	private Connection conn = null;
	private Statement stmt = null;
	private ResultSet rs = null;
	private Vector	rows = new Vector();
	private final String[] columnNames = {"姓名","性别","住址","QQ","Email","家庭电话","手机","出生日期"};
	String url = "jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=address_book.mdb";
    String forname = "sun.jdbc.odbc.JdbcOdbcDriver";
	public DBManager() {	
		try
		{ 			
			Class.forName(forname).newInstance(); 
			conn=DriverManager.getConnection(url, "","");
			stmt=conn.createStatement();
			query("select * from person");
	   	}
		catch(SQLException e){	System.out.println(e.getMessage()); }
		catch(Exception ex){ System.out.println("createError:"+ex.getMessage());}
	}
	public void query(String sql) 
	{
		try{			
			rs=stmt.executeQuery(sql);
            while (rs.next()) {
                Vector newRow = new Vector();
                for (int i = 1; i <= getColumnCount(); i++) {
                	newRow.addElement((String)rs.getObject(i+1));
                }newRow.addElement(rs.getObject(1).toString());
                rows.addElement(newRow);
              }
            fireTableChanged(null); // Tell the listeners a new table has arrived.
		}
		catch(SQLException e){System.out.println("executeQuery:"+e.getMessage());}

	}
	public void executeUpdate(String sql) 
	{
		try{
			//执行操作数据库SQL语句的方法,如插入、删除、更新记录
	 		stmt.executeUpdate(sql);
		}catch(SQLException e){ System.out.println("excecuteUpdate:"+e.getMessage());}
	}
	//关闭resultset、statement和connection
	public void close()  
	{
	  try{	
		if(rs!=null) rs.close();
		if(stmt!=null) stmt.close();
		if(conn!=null) conn.close();
	  }catch(SQLException e){ System.err.println(e.getMessage());}
	}

    //////////////////////////////////////////////////////////////////////////
    //
    //             Implementation of the TableModel Interface
    //
    //////////////////////////////////////////////////////////////////////////


	public String getColumnName(int column) {
	    if (columnNames[column] != null) {
	          return columnNames[column];
	       }else {
	          return "";
	     }
	}

    public Class getColumnClass(int column) {
    	//return getValueAt(0, column).getClass();     
    	return String.class;
    }

    public boolean isCellEditable(int row, int column) {
      return true;
    }

    public int getColumnCount() {
        return columnNames.length;
    }

    public int getRowCount() {
        return rows.size();
    }
    public void empty(){    	
    	rows.setSize(0);
        fireTableDataChanged();
    }


    public Object getValueAt(int aRow, int aColumn) {
        Vector row = (Vector)rows.elementAt(aRow);
        return row.elementAt(aColumn);
    }

    public void setValueAt(Object value, int row, int column) {   
    	String names[]={"name","gender","address","QQ","email","phone","tellphone","brithday"};//对应数据表中的字断列
    	String id=getId(row);
    	Vector dataRow = (Vector)rows.elementAt(row);
        dataRow.setElementAt(value, column);    	
        String query ="update person set "+names[column]+"='"+getValueAt(row,column)+ "' where id="+id;           
        //System.out.println(query);
        executeUpdate(query);                  
    }
    public String getId(int row){
    	String names[]={"name","gender","address","QQ","email","phone","tellphone","brithday"};//对应数据表中的字断列
    	Vector dataRow = (Vector)rows.elementAt(row);
    	String id=(String)dataRow.elementAt(names.length);//取对该行的ID号
    	return id;
    }
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -