大家好,请考虑下面的代码。我正在使用它向bookingmysql 数据库(seat_booking)中的表()添加新值。变量包括String(id,cname,ctype,event_name)和int(seatsno)。我也在EventName()这段代码中调用了一个函数,相信我伙计们它工作得很好,我能够从另一个表(事件)派生事件名称,但唯一的问题出现在这种方法中。伙计们,我的项目是制作一个座位预订 GUI 应用程序,所以当我用它为“管理员”模式添加新事件时,这段代码确实有效,但在这里不起作用,即,当我需要它来存储预订值时特定客户。请帮助伙计们。我真的很感激。private void newbookbtnActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: try { Class.forName("java.sql.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/seat_booking","root","<mypassword>"); Statement stmt = con.createStatement(); String query = "SELECT * FROM booking"; ResultSet rs = stmt.executeQuery(query); String cname = tfcname.getText(); int seatsno = Integer.parseInt(tfseatsno.getText()); String evtname = EventName(); String ctype = "Normal Customer"; long bookid = getID(); String id = Long.toString(bookid); String query1="insert into booking values('"+ id +"','"+ cname +"','"+ ctype +"','"+evtname+"',"+ seatsno+");"; stmt.executeUpdate(query1); JOptionPane.showMessageDialog(null, "Booking successfull!"); stmt.close(); con.close(); } catch (Exception e) { JOptionPane.showMessageDialog(null,"Error encountered while booking new event!"); }}
2 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
您使用了错误的驱动程序类。正确的是:
Class.forName("com.mysql.jdbc.Driver");
java.sql.Driver只是一个接口。有关更多信息,请参阅javadoc
顺便说一句:了解准备好的语句以防止 sqlinjection 不要抑制错误消息。至少记录它们或将其放入消息对话框中:
catch (Exception e)
{
e.printStacktrace();
JOptionPane.showMessageDialog(null,"Error encountered while booking new event!"+e.getMessage());
}
添加回答
举报
0/150
提交
取消