java - Java中基于用户输入的MySQL查询

标签 java mysql sql user-input

我是 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/

相关文章:

MySQL Group By 查找唯一组合

java - 为什么 HashMap.Entry 类有一个哈希字段?

mysql - 如何将 SUM() 编码到 MySQL 中我自己的自定义函数中? (错误代码 : 1415)

php - 更新MySQL数据库中上传的图片URL

MYSQL代码创建传递闭包表失败

mysql - 使用 insert SET 语法可以插入多行吗?

mysql - 我该如何优化这个 MySQL 查询?我应该使用联接吗?

java - 线程不通信

java - 如何让应用程序等待线程执行完毕?

java - Neomades 语法错误,参数化类型仅在源级别为 1.5 或更高时可用