亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PostgreSQL數據庫在名稱列中搜索城市名稱并打印所選城市名稱的所有記錄

PostgreSQL數據庫在名稱列中搜索城市名稱并打印所選城市名稱的所有記錄

弒天下 2024-01-17 10:29:05
我試圖輸入城市名稱,如果數據庫中存在城市名稱(否則錯誤消息),然后我想打印選定的城市名稱、人口、緯度和經度。其余代碼運行良好。數據庫圖片在這里public static void city(){        ResultSet rs = null;        Scanner k = new Scanner (System.in);        System.out.println("Enter the name");        String Name = k.nextLine ();        try {            rs = stmt.executeQuery("SELECT * FROM cities WHERE name ="+Name);            // At least a record selected            if(rs.isBeforeFirst ()){                //Iterates through each record                while (rs.next ()){                    String name = rs.getString (i:1);                    int population = rs.getInt(i:2);                    double latitude = rs.getDouble (i:3);                    double longitude = rs.getDouble(i:4);                    System.out.println("Name: " + name);                    System.out.println("Population: " + population);                    System.out.println("Latitude: " + latitude);                    System.out.println("Longitude: " + longitude);                    System.out.println();                }            }            else {                System.out.println("No records selected.");            }        }        catch(SQLException e) {            System.out.println("Error selecting from table: " + e.getMessage());        }        finally {            try {                rs.close();                                                                                                         }            catch(Exception e) {                //ResultSet still null/nothing to close            }        }    }
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

這將檢查您的數據庫中是否有城市名稱


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();


查看完整回答
反對 回復 2024-01-17
?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

看起來好像缺少引號,請嘗試以下操作:

rs = stmt.executeQuery("SELECT * FROM cities WHERE name = '"+Name+"' ");


查看完整回答
反對 回復 2024-01-17
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

首先,如果字段“名稱”是字符變化或文本,則必須像這樣修改第 8 行:

rs = stmt.executeQuery("SELECT * FROM cities WHERE name ='"+Name+"'");


查看完整回答
反對 回復 2024-01-17
  • 3 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號