java - 插入数据时出现意外标记

标签 java ms-access jdbc ucanaccess

我收到这样的错误:

comit :net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 unexpected token: : required: ) data comittgl : 00:00:00.0id :3 mesin :PU 6 resource :<22 tonase :120.0 gaji :21500.0 sub tot: 2580000.0

这是我的代码:

public void comit(String tanggal,String id_gaji_kuli,String mesin,String resource,double tonase,double gaji,double sub_total_gaji)
{
 conn = Connect.ConnectDB();
        String sql = "insert into gaji(Tanggal,id_gaji_kuli,mesin,resource,tonase,gaji,sub_total_gaji)"
                + "values("+tanggal+",'"+id_gaji_kuli+"','"+mesin+"','"+resource+"','"+tonase+"','"+gaji+"','"+sub_total_gaji+"');";
        try{
            pst = conn.prepareStatement(sql);
            pst.execute();
            JOptionPane.showMessageDialog(null, "Saved");
          //  UpdateJTable();
            //conn.close();
        }
        catch(Exception e){
            //JOptionPane.showMessageDialog(null, e);
            System.out.println("comit :"+e);
        }

最佳答案

您没有以“正确”的方式使用PreparedStatement。您应该使用参数化查询,如下所示:

String sql = 
        "insert into gaji (Tanggal, id_gaji_kuli, ...) " +
        "values (?, ?, ...)";
pst = conn.prepareStatement(sql);
pst.setString(1, tanggal);
pst.setString(2, id_gaji_kuli);
// ...
pst.executeUpdate();

关于java - 插入数据时出现意外标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40610594/

相关文章:

ms-access - Microsoft Access 无法更新链接的 SQLite3 ODBC 表上的大型备注(长文本)字段 : sequence error (#-1)

oracle - ORA-12505,TNS :listener does not currently know of SID given in connect descriptor. Eclipse 和 Fedora 20 通过 JDBC

java - Android : java. lang.NullPointerException 无法启动 Activity

java - ByteArrayOutputStream 上传到服务器

java - 无法将 Slf4j 与 lombok 一起使用

ms-access - 如何通过 MS-Access VBA 中的 TextBox.OnKeyUp 属性传递 KeyCode

java - 如果设置了 HijrahChronology,DatePicker 的 setDayCellFactory 中的 setDisable() 不起作用

ms-access - 如何循环访问MS Access DB中的所有表

java - 是否有为 Java EE 容器定义 JDBC 数据源的标准方法?

java - 如何避免此 SQL 异常?