【发布时间】:2020-05-31 08:04:46
【问题描述】:
我正在编写一个 Java 方法,它根据 «rating» 列中的 «mpaa_rating» 数据类型在 the Postres sample 'DVD Rental' database 表中搜索 «films»。
public static void rechercheRating() {
System.out.println("======= Ratings menu =========");
System.out.println("\t 'G' ");
System.out.println("\t 'PG' ");
System.out.println("\t 'PG-13' ");
System.out.println("\t 'R' ");
System.out.println("\t 'NC-17' ");
System.out.println("Entrez le rating désiré :");
String userInput = sc.nextLine().toUpperCase();
try {
int foovalue = 10;
PreparedStatement st = conn.prepareStatement("SELECT title, rating FROM film WHERE (rating = ?);");
st.setString(1, userInput);
ResultSet rs = st.executeQuery();
System.out.printf("%-20s %-15s\n", "Film", "Rating");
while (rs.next()) {
System.out.printf("%-20s %-15s\n", rs.getString(1), rs.getString(2));
}
rs.close();
st.close();
} catch (SQLException ex) {
Logger.getLogger(DVDrental.class.getName()).log(Level.SEVERE, null, ex);
}
}//rechercheRating
问题是 «mpaa_rating» 不是字符串数据类型。我在 IDE 中遇到的错误是
“org.postgresql.util.PSQLException: 错误: 运算符不存在: mpaa_rating = 字符变化"
和
"提示:没有运算符与给定的名称和参数类型匹配。您 可能需要添加显式类型转换。”
如何将 Java 字符串转换为 Postres 字符变量?
【问题讨论】:
-
Java 字符串已经被转换成字符变化。问题是 mpaa_rating 不能与字符变化进行比较。这是什么数据类型?也许您需要在 SQL 语句中添加转换函数?
-
您提到的数据库中不存在
mpaa_rating列。您确定错误发生在这段代码中吗?看起来不像。由于问题尚未明确定义,因此将投票关闭。 -
表«film»中的«rating»列包含«mpaa_rating»数据类型
标签: java sql postgresql sqldatatypes