我正在做一个将Access链接到Java GUI的项目。我目前正在寻找一种方法来选择查询中包含特定值的记录。
如果我的领域是:
Name | Job | Hours Worked
Tom | Sales Support | 6
Bill | Manager | 8
Tom | Sales Floor | 5
然后在GUI的搜索字段中输入Tom,我希望它将以下内容返回到GUI:
Name | Job | Hours Worked
Tom | Sales Support | 6
Tom | Sales Floor | 5
我尝试使用此代码:
ArrayList<String> list = new ArrayList<>();
String filePath = "C:\\Users\\Bob\\Schedule.accdb";
Connection con=DriverManager.getConnection("jdbc:ucanaccess://"+filePath);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM [Double Booking] WHERE [Name] = Tom");
while(rs.next()) list.add(rs.getString(1));
con.close();
return list.toArray();
但是我得到了错误:
net.ucanaccess.jdbc.UcanaccessSQLException: user lacks privilege or object not found: TOM
当我输入st.executeQuery(“ SELECT [Name] FROM [Double Booking]”)时,我收到类似的错误:
net.ucanaccess.jdbc.UcanaccessSQLException: user lacks privilege or object not found: DOUBLE BOOKING
由于Tom
打算用作字符串文字,因此您需要添加引号字符:
"SELECT * FROM [Double Booking] WHERE [Name] = 'Tom'"
也就是说,如果“ Tom”仅是示例,则在可能的情况下使用参数化查询会更好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句