public void setValueAt(Object value, int row, int column) {
try {
String tableName = metaData.getTableName(column+1);//??????如何与当前操作的表挂钩??
// Some of the drivers seem buggy, tableName should not be null.
if (tableName == null) {
System.out.println("Table name returned null.");
}
String columnName = getColumnName(column);
String query =
"update "+tableName //如何得到当前正在操作的表名(随事件的不同表的选择不同),对其进行修改
+ " set "+columnName+" = "+dbRepresentation(column, value)+
" where ";
// We don't have a model of the schema so we don't know the
// primary keys or which columns to lock on. To demonstrate
// that editing is possible, we'll just lock on everything.
for(int col = 0; col<getColumnCount(); col++) {
String colName = getColumnName(col);
if (colName.equals("")) {
continue;
}
if (col != 0) {
query = query + " and ";
}
query = query + colName +" = "+
dbRepresentation(col, getValueAt(row, col));
}
System.out.println(query);
System.out.println("Not sending update to database");
statement.executeQuery(query);
//statement.executeUpdate(query); }
catch (SQLException e) {
e.printStackTrace();
System.err.println("Update failed");
}
Vector dataRow = (Vector)rows.elementAt(row);
dataRow.setElementAt(value, column); }
}
class menuWin extends JFrame
{ JDBCAdapter tableModel;
Container con;JPanel p1;
JButton button1,button2,button3,button4;
menuWin()
{super("飞机票预定系统");
String driverName="sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:airplane";
String user= "sa";
String passwd = "1128"; con=getContentPane(); p1=new JPanel();
setSize(200,80);setVisible(true);
JMenuBar menubar=new JMenuBar();
con.add(menubar,BorderLayout.NORTH); JMenu menu1=new JMenu("管理员登录系统");
JMenu menu2=new JMenu("航班信息系统");
JMenu menu3=new JMenu("座位情况信息系统");
JMenu menu4=new JMenu("机票预定信息系统");
JMenu menu5=new JMenu("取票信息系统");
JMenu menu6=new JMenu("账单信息系统"); JMenuItem item1=new JMenuItem("管理员信息");
JMenuItem item2=new JMenuItem("授权管理"); JMenuItem item3=new JMenuItem("航班信息表"); JMenuItem item4=new JMenuItem("座位情况信息表"); JMenuItem item5=new JMenuItem("预定机票");
JMenuItem item6=new JMenuItem("打印取票通知");
JMenuItem item7=new JMenuItem("打印帐单");
JMenuItem item8=new JMenuItem("计算满座率");
JMenuItem item9=new JMenuItem("退票"); JMenuItem item10=new JMenuItem("取票信息表"); JMenuItem item11=new JMenuItem("账单信息表");
menu1.add(item1);menu1.add(item2); menu2.add(item3);menu3.add(item4); menu4.add(item5);menu4.add(item6);menu4.add(item7);menu4.add(item8);menu4.add(item9); menu5.add(item10);menu6.add(item11); menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);
menubar.add(menu4);menubar.add(menu5);menubar.add(menu6); button1=new JButton("show");button3=new JButton("update");
button2=new JButton("add"); button4=new JButton("remove"); p1.add(button1); p1.add(button2);p1.add(button3);p1.add(button4);
con.add(p1,BorderLayout.SOUTH); addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ setVisible(false);System.exit(0);}});
tableModel =new JDBCAdapter( url,driverName,user,passwd);
// tableModel.executeQuery(query); JTable table=new JTable(tableModel);
JScrollPane scroll;
table.setToolTipText("Display Query Result");
table.setAutoResizeMode(table.AUTO_RESIZE_OFF);
table.setCellSelectionEnabled(false);
table.setShowHorizontalLines(true);
table.setShowVerticalLines(true);
scroll = new JScrollPane(table);
scroll.setBounds(6,20,540,250);
con.add(scroll,BorderLayout.CENTER); button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
tableModel.executeQuery("select * from table1"); }
}
); item1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
tableModel.executeQuery("select * from table2"); }
}
);
//???如何随着事件的不同对不同的表进行修改??? }//end menuWin}//end class
public class test1
{public static void main(String args[])
{menuWin win=new menuWin();
win.pack();
}
}
try {
String tableName = metaData.getTableName(column+1);//??????如何与当前操作的表挂钩??
// Some of the drivers seem buggy, tableName should not be null.
if (tableName == null) {
System.out.println("Table name returned null.");
}
String columnName = getColumnName(column);
String query =
"update "+tableName //如何得到当前正在操作的表名(随事件的不同表的选择不同),对其进行修改
+ " set "+columnName+" = "+dbRepresentation(column, value)+
" where ";
// We don't have a model of the schema so we don't know the
// primary keys or which columns to lock on. To demonstrate
// that editing is possible, we'll just lock on everything.
for(int col = 0; col<getColumnCount(); col++) {
String colName = getColumnName(col);
if (colName.equals("")) {
continue;
}
if (col != 0) {
query = query + " and ";
}
query = query + colName +" = "+
dbRepresentation(col, getValueAt(row, col));
}
System.out.println(query);
System.out.println("Not sending update to database");
statement.executeQuery(query);
//statement.executeUpdate(query); }
catch (SQLException e) {
e.printStackTrace();
System.err.println("Update failed");
}
Vector dataRow = (Vector)rows.elementAt(row);
dataRow.setElementAt(value, column); }
}
class menuWin extends JFrame
{ JDBCAdapter tableModel;
Container con;JPanel p1;
JButton button1,button2,button3,button4;
menuWin()
{super("飞机票预定系统");
String driverName="sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:airplane";
String user= "sa";
String passwd = "1128"; con=getContentPane(); p1=new JPanel();
setSize(200,80);setVisible(true);
JMenuBar menubar=new JMenuBar();
con.add(menubar,BorderLayout.NORTH); JMenu menu1=new JMenu("管理员登录系统");
JMenu menu2=new JMenu("航班信息系统");
JMenu menu3=new JMenu("座位情况信息系统");
JMenu menu4=new JMenu("机票预定信息系统");
JMenu menu5=new JMenu("取票信息系统");
JMenu menu6=new JMenu("账单信息系统"); JMenuItem item1=new JMenuItem("管理员信息");
JMenuItem item2=new JMenuItem("授权管理"); JMenuItem item3=new JMenuItem("航班信息表"); JMenuItem item4=new JMenuItem("座位情况信息表"); JMenuItem item5=new JMenuItem("预定机票");
JMenuItem item6=new JMenuItem("打印取票通知");
JMenuItem item7=new JMenuItem("打印帐单");
JMenuItem item8=new JMenuItem("计算满座率");
JMenuItem item9=new JMenuItem("退票"); JMenuItem item10=new JMenuItem("取票信息表"); JMenuItem item11=new JMenuItem("账单信息表");
menu1.add(item1);menu1.add(item2); menu2.add(item3);menu3.add(item4); menu4.add(item5);menu4.add(item6);menu4.add(item7);menu4.add(item8);menu4.add(item9); menu5.add(item10);menu6.add(item11); menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);
menubar.add(menu4);menubar.add(menu5);menubar.add(menu6); button1=new JButton("show");button3=new JButton("update");
button2=new JButton("add"); button4=new JButton("remove"); p1.add(button1); p1.add(button2);p1.add(button3);p1.add(button4);
con.add(p1,BorderLayout.SOUTH); addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ setVisible(false);System.exit(0);}});
tableModel =new JDBCAdapter( url,driverName,user,passwd);
// tableModel.executeQuery(query); JTable table=new JTable(tableModel);
JScrollPane scroll;
table.setToolTipText("Display Query Result");
table.setAutoResizeMode(table.AUTO_RESIZE_OFF);
table.setCellSelectionEnabled(false);
table.setShowHorizontalLines(true);
table.setShowVerticalLines(true);
scroll = new JScrollPane(table);
scroll.setBounds(6,20,540,250);
con.add(scroll,BorderLayout.CENTER); button1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
tableModel.executeQuery("select * from table1"); }
}
); item1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
tableModel.executeQuery("select * from table2"); }
}
);
//???如何随着事件的不同对不同的表进行修改??? }//end menuWin}//end class
public class test1
{public static void main(String args[])
{menuWin win=new menuWin();
win.pack();
}
}
仔细看看吧,其实不难的!
仔细看看吧,其实不难的!