java - 从 NetBeans 插入 Access 数据库

标签 java ms-access jdbc netbeans ucanaccess

我在java netbeans中创建了一个基于GUI的酒店管理系统,它与Ms Access数据库连接。在数据库中,我有一个名为“RoomInfo”的表。

当我尝试执行以下查询时,出现两种错误。

String sql = "INSERT INTO RoomInfo(RoomNumber,Reserved,RoomCategory,AirConditioned,
    BedType, RentPerDay)VALUES("+objr.roomno+","+objr.reserved+","+objr.category+","
   +objr.AirConditioned+","+objr.bedtype+","+objr.rent+")";

第一个错误是 net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 意外标记: , 当我将所有 Jtextfields 留空并尝试在其中插入新记录时,我收到此错误到数据库。

第二个错误是 net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 用户缺乏权限或未找到对象:经济(经济是房间类别的条目)我收到此错误当我在 Jtextfields 中输入数据并尝试将其保存到数据库中时。

需要帮助确定问题。

最佳答案

不要将变量名称直接传递到 sql 字符串中,然后使用 ps.setString() 再次设置它们;只需在 sql 字符串中使用占位符即可。 我的意思是

String sql = "INSERT INTO RoomInfo (RoomNumber, Reserved, RoomCategory, AirConditioned, BedType, RentPerDay) 
VALUES (?, ?, ?, ?,?)";
        ps = con.prepareStatement(sql);

        ps.setString(1, objr.roomno);
        ps.setString(2, objr.reserved);
        ps.setString(3, objr.category);
        ps.setString(4, objr.AirConditioned);
        ps.setString(5, objr.bedtype);
        ps.setString(6, objr.rent);

关于java - 从 NetBeans 插入 Access 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40697874/

相关文章:

java - 从 servlet 调用 jsp 时出现异常?

java - 使用机器学习进行文本标记

java - 如何在android中自定义形状进度条,如苹果形状?

php - php 中的数据库连接与 linux 主机上的 MS Access

java - BIRT 3.7 运行时。不能再自定义 PDF 字体和 jdbc 驱动程序了吗?

spring - 如何从 application.properties 文件设置 h2.jdbc?

java - GraalVM 性能

sql-server - 使用传递查询从 ms access Access oracle 数据库表

.net - SQL BETWEEN 查询返回不正确的结果

java - 在准备好的语句中,setString()是防止SQL注入(inject)的唯一有用方法吗?