为了账号安全,请及时绑定邮箱和手机立即绑定

不再可能向 mysql 数据库添加新值?

不再可能向 mysql 数据库添加新值?

慕尼黑的夜晚无繁华 2021-09-29 17:37:06
大家好,请考虑下面的代码。我正在使用它向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());

}


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信