从 NetBeans 插入 Access 数据库
Posted
技术标签:
【中文标题】从 NetBeans 插入 Access 数据库【英文标题】:Inserting into Access database from NetBeans 【发布时间】:2016-11-19 21:03:10 【问题描述】:我在 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) 您应该在 SQL 命令文本中使用问号 (?
) 作为参数占位符,例如,... VALUES (?,?,?,?,?,?)
。 (2) 您正在执行“所有字段都不能为空”检查 after 尝试插入行,而不是之前。
【参考方案1】:
而不是将变量名直接传递到 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);
【讨论】:
感谢您的回复。所以我的 INSERT QUERY 的语法是错误的? 看起来那样。以上是关于从 NetBeans 插入 Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Mac OSX 上将 Access 数据库与 Netbeans 连接?
使用 Javafx(netbeans) 在 SQLITE 数据库中插入 PDF 或任何类型的文件
如何将文本框中的数据插入到 java-netbeans 中的 mysql 数据库中
如何在netbeans java中将图像插入mysql数据库