我创建了一个包含4列的数据库(ID_PRODUIT,NOM_PRODUIT,QUANTITE,PRIX)。我试图创建一个允许我使用字符串键搜索Product(我的类)的方法,但是,查询无法识别" NOM_PRODUIT"列,然后转向" NOM_PRODUIT"到" nom_produit"在消息错误中。
Connection conn = DriverManager.getConnection(url, user, passwd);
PreparedStatement ps = conn.prepareStatement("SELECT * FrOM produits where NOM_PRODUIT like ?");
ps.setString(1,"%"+mc+"%");
ResultSet rs = ps.executeQuery();
while(rs.next()){
Produit p=new Produit();System.out.println(rs.getString(2));
p.setIdProduit(rs.getInt(1));
p.setNomProduit(rs.getString(2));
p.setQuantite(rs.getInt(3));
p.setPrix(rs.getInt(4));
}
ps.close();
conn.close();
我收到此错误:
org.postgresql.util.PSQLException: ERREUR: la colonne « nom_produit » n'existe pas
这是我的数据库。
答案 0 :(得分:1)
如果问题与列名中的大写和小写有关:可以将列名放在双引号中:
PreparedStatement ps =
conn.prepareStatement("SELECT * FROM produits where \"NOM_PRODUIT\" like ?");
这样名称区分大小写。
答案 1 :(得分:0)
这里
ps.setString(1,"%"+mc+"%");
你缺少单引号',试试
ps.setString(1,"'%"+mc+"%'");