数据库连接的基本问题,100分等待,不够可加..
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.table.*;
import java.sql.*;
class PersonnelRecordTable extends JFrame {
.............................
private void dataQuery(){
try{
ResultSetMetaData rsmd = conIns.rs.getMetaData();
conIns.stm = conIns.con.createStatement();
if(txtFieldQue.getText().trim().equals(""))
conIns.rs = conIns.stm.executeQuery("select * from personnel");
else
conIns.rs = conIns.stm.executeQuery("select * from personnel where project_ID = "
+ txtFieldQue.getText().trim());
//初始化向量对象
vect.removeAllElements();
//更新表格内容
tm.fireTableStructureChanged();
while(conIns.rs.next()){
Vector rec_vector = new Vector();
for(int i =1; i<=rsmd.getColumnCount(); i++){
//从结果集中取数据放入向量rec_vector中
rec_vector.addElement(conIns.rs.getObject(i));
}
//向量rec_vector加入向量vect中
vect.addElement(rec_vector);
}
//更新表格,显示向量vect的内容
tm.fireTableStructureChanged();
//查询完成后,关闭该SQL
conIns.stm.close();
//重新执行SQL
openDB();
} catch(Exception e){
System.out.print("Error in Query Data." + e);
System.exit(1);
}
}
//打开表
private void openDB() {
try{
conIns.stm = conIns.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
conIns.rs = conIns.stm.executeQuery("select * from personnel");
conIns.rs.next();
} catch(Exception e){
System.out.print("Error in open table." + e);
System.exit(1);
}
}
//提取字段信息
private void loadData(){
try{
ResultSetMetaData rsmd = conIns.rs.getMetaData();
for(int i =1; i<=fields.size(); i++)
{
String value = " ";
String name = rsmd.getColumnName(i).trim();
value = conIns.rs.getString(name);
JTextField txtField = (JTextField) fields.get(i-1);
txtField.setText(value);
}
}catch(Exception e){
System.out.print("Error in load data." + e);
System.exit(1);
}
}
private void enableButton() {
try{
button_first.setEnabled(!conIns.rs.isFirst());
button_previous.setEnabled(!conIns.rs.isFirst());
button_next.setEnabled(!conIns.rs.isLast());
button_last.setEnabled(!conIns.rs.isLast());
}catch (Exception e){
System.out.print("Error in enable button" +e);
System.exit(1);
}
}
//-----------------------------------------------------------
//面板panelLabel
private JPanel panelLabel = new JPanel();
//标签名
private String labels[] ={ "人员编号" , "姓名",
"特长", "参与的项目编号"
};
//面板panelText
private JPanel panelText = new JPanel();
//文本框
//面板panel_label_text
private JPanel panel_label_text = new JPanel();
//面板panelButtonGroup1
private JPanel panelButtonGroup1 = new JPanel();
//按钮组1
private JButton button_first = new JButton("第一条");
private JButton button_previous= new JButton("前一条");
private JButton button_next= new JButton("下一条");
private JButton button_last= new JButton("最后一条");
//面板panelButtonGroup2
private JPanel panelButtonGroup2 = new JPanel();
//按钮组2
private JButton button_insert= new JButton("新增");
private JButton button_update= new JButton("修改");
private JButton button_delete= new JButton("删除");
private JButton button_commite= new JButton("提交");
private JButton button_cancel= new JButton("取消");
private JButton button_quit= new JButton("退出");
//面板panelQuery
private JPanel panelQuery = new JPanel();
//label
private JLabel label_que = new JLabel("项目编号", 0);
//文本框
private JTextField txtFieldQue = new JTextField(40);
//按钮
private JButton button_que = new JButton("查询");
//面板panelTable
private JPanel panelTable = new JPanel();
private JScrollPane panelScroll;
//表格
//声明向量对象
//private Vector rows = new Vector();
//private Vector columnname = new Vector();
private Vector vect = new Vector();
//设定数据
//声明一个类AbstractTableModel对象
//实现AbstractTableModel对象tm中的方法
private AbstractTableModel tm = new AbstractTableModel(){
//取得表格列数
public int getColumnCount(){
return labels.length;
}
//取得表格行数
public int getRowCount(){
return vect.size();
}
//取得单元格中的属性值
public Object getValueAt(int aRow, int aColumn) {
Vector row = (Vector)vect.elementAt(aRow);
return row.elementAt(aColumn);
}
//设置表格列名
public String getColumnName(int column){
if (labels[column] != null) {
return labels[column];
} else {
return "";
}
}
//数据模型不可编辑,该方法设置为空
public void setValueAt(Object value, int row,int column){}
//取得列所属对象类
public Class getColumnClass(int column) {
int type;
try {
type = conIns.rs.getMetaData().getColumnType(column+1);
}
catch (SQLException e) {
return super.getColumnClass(column);
}
switch(type) {
case Types.CHAR:
case Types.VARCHAR:
case Types.LONGVARCHAR:
return String.class;
case Types.BIT:
return Boolean.class;
case Types.TINYINT:
case Types.SMALLINT:
case Types.INTEGER:
return Integer.class;
case Types.BIGINT:
return Long.class;
case Types.FLOAT:
case Types.DOUBLE:
return Double.class;
case Types.DATE:
return java.sql.Date.class;
default:
return Object.class;
}
}
//设置单元格不可编辑,为缺省实现
public boolean isCellEditable(int row,int column){
return false;
}
};
private JTable table_que;
//面板panel_que_table
private JPanel panel_que_table = new JPanel();
//面板panel_buttongroup1_text_buttongruop2
private JPanel panel_buttongroup1_label_text_buttongruop2 = new JPanel();
//整体
private Container contentPane = new Container();
private Vector fields = new Vector();
private conDB conIns;
private boolean isInsert = false;
}
上面是我的程序的这个模块...我每次在添加数据时就报错..
说是:Error in commit data.java.sql.SQLException:[Microsoft]
[ODBC Microsoft Access Driver]行中有错误
我的运行环境是:jdk1.4