从NetBeans插入Access数据库

时间:2016-11-19 21:03:10

标签: 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 unexpected token: ,当我将所有Jtextfields留空并尝试将新记录插入数据库时​​,我收到此错误。

第二个错误是net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 user lacks privilege or object not found: Economy(经济是房间类别的条目)当我将数据输入Jtextfields并尝试将其保存到数据库时,我收到此错误。

需要帮助确定问题。

1 个答案:

答案 0 :(得分:3)

而不是将变量名直接传递给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);