使用Java在jtable和数据库中添加行
Posted
技术标签:
【中文标题】使用Java在jtable和数据库中添加行【英文标题】:Adding row in jtable and database using Java 【发布时间】:2017-02-25 06:09:34 【问题描述】:我的代码有问题,它没有错误日志,所以我看不到问题所在。 . .
Current Problem:
Mainclass() is where the main frame is. . . Clicking ADD will open
AddBroker() and clicking ADD in AddBroker() will update databse and jtable
in MainClass(). Database can now be updated but the jtable in MainClass() won't
change until you open it again
这是我的主要课程(其他代码被编辑以专注于问题)
public class MainClass extends JFrame
JButton button_17 = new JButton("ADD");
button_17.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent arg0)
//to call class AddBroker()
AddBroker ab = new AddBroker();
ab.setVisible(true);
);
那么这是 AddBroker() 的类。 . .
public class AddBroker extends JFrame
JButton btnAdd = new JButton("ADD");
final Object[] addBrokerrow = new Object[3];
btnAdd.addActionListener(new ActionListener()
public void actionPerformed(ActionEvent arg0)
ButtonCon bcd = new ButtonCon();
DriverTableCon dtcd = new DriverTableCon(); //this is just jtable
MainClass mcd = new MainClass();
String a = brokerBroker.getText();
String b = addBroker.getText();
String c = tinBroker.getText();
addBrokerrow[0] = a;
addBrokerrow[1] = b;
addBrokerrow[2] = c;
dtcd.modelBroker.addRow(addBrokerrow);
bcd.addBrokerCon(a,b,c);
);
而 ButtonCon() 是添加数据的地方
public class ButtonCon
Connection con;
Statement st;
ResultSet rs;
StringBuffer results;
String url = "jdbc:ucanaccess://C://DATABASE//NTD.accdb";
public void addBrokerCon(String broker, String add, String tin)
try
con = DriverManager.getConnection(url);
String sql = "INSERT INTO brokerT (Broker, Address, Tin_No) VALUES (?,?,?)";
ps = con.prepareStatement(sql);
ps.setString(1, broker);
ps.setString(2, add);
ps.setString(3, tin);
ps.executeUpdate();
ps.close();
con.close();
catch (Exception e)
System.out.print(e.toString());
没有错误,所以我不知道这里出了什么问题。任何输入将不胜感激:)
所以已经一周了,我所做的尝试解决了这个问题,我所做的是添加一个“刷新”按钮来再次加载表格。
【问题讨论】:
您使用的是哪个数据库?你传递的url
是什么?
【参考方案1】:
您在ps.setString(3, tin);
和ps.close();
之间混淆了ps.executeUpdate();
。
并用st
删除所有内容是没有必要的。
【讨论】:
谢谢!添加 ps.executeUpdate() 肯定会向数据库添加数据,但是 MainClass() 中的 jtable 不会更新,除非我再次运行该程序。 . . 看看这个关于JTable的answer。 答案并没有说任何有用的东西,但还是谢谢你。当我这样做时,我会弄清楚并发布我的结果:)感谢您指出我的愚蠢错误:')以上是关于使用Java在jtable和数据库中添加行的主要内容,如果未能解决你的问题,请参考以下文章
如何在按钮单击时将新行添加到数据库中的jTable而不清除现有行