Java PostgreSQL数据库在名称列中搜索城市名称,并打印所选城市名称的所有记录
我试图输入城市名称,如果数据库中存在城市名称(否则错误消息),则我要打印所选城市名称、人口、纬度和经度。代码的其余部分运行良好 首先,如果字段“name”是字符变化或文本,则必须修改第8行,如下所示:Java PostgreSQL数据库在名称列中搜索城市名称,并打印所选城市名称的所有记录,java,database,postgresql,Java,Database,Postgresql,我试图输入城市名称,如果数据库中存在城市名称(否则错误消息),则我要打印所选城市名称、人口、纬度和经度。代码的其余部分运行良好 首先,如果字段“name”是字符变化或文本,则必须修改第8行,如下所示: rs = stmt.executeQuery("SELECT * FROM cities WHERE name ='"+Name+"'"); 这将检查数据库中是否有城市名称 rs = stmt.executeQuery("SELECT * FROM cities WHERE name = '"
rs = stmt.executeQuery("SELECT * FROM cities WHERE name ='"+Name+"'");
这将检查数据库中是否有城市名称
rs = stmt.executeQuery("SELECT * FROM cities WHERE name = '"+name+"'");
if(rs.next()){
//it exist
//print record
}
else{
//it does not exist
System.out.println("Error Message!");
}
您还可以使用PreparedStatement
来代替上述查询
PreparedStatement p = yourConnection.prepareStatement("SELECT * FROM cities WHERE name = ?");
p.setString(1, name);
rs = p.executeQuery();
看起来缺少引号,请尝试以下操作:
rs = stmt.executeQuery("SELECT * FROM cities WHERE name = '"+Name+"' ");
从表中选择时出错:列索引超出范围:2,列数:1。它不工作。String name=rs.getString(1);整数总体=rs.getInt(2);双纬度=rs.getDouble(3);双经度=rs.getDouble(4);从表中选择时出错:列索引超出范围:2,列数:1。不要将值连接到SQL字符串中。请使用
PreparedStatement
-然后问题将自动消失。从表中选择时出错:列索引超出范围:2,列数:1。它不起作用。请尝试使用:String name=rs.getString(“name”);整数人口=rs.getInt(“人口”);双纬度=rs.getDouble(“纬度”);双经度=rs.getDouble(“经度”)代码>
rs = stmt.executeQuery("SELECT * FROM cities WHERE name = '"+Name+"' ");