我是 SQL 和 Java 新手,找不到任何东西来解决我的问题。 (最近的东西:MySQL query based on user input) 所以我有一个充满节目/Activity 的数据库,我希望用户“搜索”某个 Activity 或节目。 用户将在 GUI 中输入节目/事件的名称,我希望查询返回与用户输入关联的数据。
例如:
用户正在搜索艺术家 Zedd;
searchSet = statement.executeQuery("SELECT eventname,date FROM shows WHERE artist LIKE 'zedd' ");
查询是固定的,是否可以修改查询以搜索用户输入的任何内容?
类似于:
String artist = "zeppelin"
searchSet = statement.executeQuery("SELECT eventname,date FROM shows WHERE artist LIKE "artist" ");
预先感谢您的帮助!
最佳答案
您应该仔细检查您的显示第二列。我不确定您是否可以使用名为 date
的列。无论如何,你当然应该使用 PreparedStatement
类似的东西,
String sql = "SELECT eventname, eventdate FROM shows WHERE artist LIKE ?";
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, artist);
rs = ps.executeQuery();
while (rs.next()) {
String eventName = rs.getString("eventname");
Date eventDate = rs.getDate("eventdate");
// Use your columns in your row here.
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
关于java - Java中基于用户输入的MySQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374086/