| 10 | 1/1 | 返回列表 |
| 查看: 1676 | 回復: 9 | ||
[求助]
大家好,我現(xiàn)在遇到了一個問題,請大家?guī)蛶兔Γ? 已有1人參與
|
|
package Water; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; //import java.util.Scanner; public class QueryDesc { public static List<UserVo> showUser() throws ClassNotFoundException { Connection conn = null; Statement stmt = null; ResultSet rs = null; List<UserVo> list = new ArrayList<UserVo>();//聲明一個List集合,用于存放查詢出的數(shù)據(jù) try { // String Str=" SELECT '%s' FROM MONTHAVERAGE "; // String.format(Str,M); // 格式化字符串 conn = JDBC_Connection.getConnection();// 連接數(shù)據(jù)庫 stmt = conn.createStatement();// 建立Statement對象; rs = stmt.executeQuery("SELECT 一 FROM MONTHAVERAGE " ); while(rs.next())// 結(jié)果集存在,則進行循環(huán)遍歷 { UserVo userVo = new UserVo(); userVo.setDD(rs.getInt("一" );list.add(userVo); } }catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ JDBC_Connection.free(rs, conn, stmt);// 關(guān)閉連接 } return list; } 大家好,我想知道怎樣將 rs = stmt.executeQuery("SELECT 一 FROM MONTHAVERAGE " );這一句中所選的那個列名“一”變成變量,在以上的程序中我要加入一段什么樣的代碼來實現(xiàn)呢?謝謝大家! |
木蟲 (正式寫手)

至尊木蟲 (著名寫手)
驃騎將軍

|
您好,麻煩您了,我把程序按您的提示改了之后如下: public class QueryDesc { public static List<UserVo> showUser(String M) throws ClassNotFoundException { Connection conn = null; Statement stmt = null; ResultSet rs = null; List<UserVo> list = new ArrayList<UserVo>();//聲明一個List集合,用于存放查詢出的數(shù)據(jù) try { // String Str=" SELECT '%s' FROM MONTHAVERAGE "; // String.format(Str,M); // 格式化字符串 conn = JDBC_Connection.getConnection();// 連接數(shù)據(jù)庫 stmt = conn.createStatement();// 建立Statement對象; String name="M"; String sql_str = "SELECT "+name+" FROM MONTHAVERAGE"; rs = stmt.executeQuery(sql_str); //rs = stmt.executeQuery("SELECT 一 FROM MONTHAVERAGE " ;while(rs.next())// 結(jié)果集存在,則進行循環(huán)遍歷 { UserVo userVo = new UserVo(); userVo.setDD(rs.getInt("一" );list.add(userVo); } }catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ JDBC_Connection.free(rs, conn, stmt);// 關(guān)閉連接 } return list; } public static void main(String[] args) throws ClassNotFoundException { System.out.print("請輸入要計算的月份:" ;Scanner scanner=new Scanner(System.in); String str=scanner.next(); List<UserVo> list=QueryDesc.showUser(str);//調(diào)用查詢方法 //如果list集合不為空,則循環(huán)遍歷打印出所有的信息 if(list!=null){ System.out.print("十二" ;System.out.println(); for (int j = 0; j < list.size(); j++) { System.out.print(list.get(j).getDD()+"\t" ;System.out.println(); } } } } 其中public static List<UserVo> showUser(String M)這一句加了一個String M; 然后就是String name="M"; String sql_str = "SELECT "+name+" FROM MONTHAVERAGE"; rs = stmt.executeQuery(sql_str);按您說的修改了, 最后加了一段:public static void main(String[] args) throws ClassNotFoundException { System.out.print("請輸入要計算的月份:" ;Scanner scanner=new Scanner(System.in); String str=scanner.next(); List<UserVo> list=QueryDesc.showUser(str);//調(diào)用查詢方法 //如果list集合不為空,則循環(huán)遍歷打印出所有的信息 if(list!=null){ System.out.print("十二" ;System.out.println(); for (int j = 0; j < list.size(); j++) { System.out.print(list.get(j).getDD()+"\t" ;System.out.println(); } } } } 這個,可是結(jié)果顯示 : ORA-00904: "M": 標識符無效 請問是我修改的哪里有問題嗎?謝謝您! |
木蟲 (正式寫手)
|
暈死,怎麼字符串的拼接都還那麼生疏啊,把基礎知識再過一遍吧 showUser(String M) 方法參數(shù) M 就是個變量了 方法內(nèi)部可以直接用 String sql_str = "SELECT "+M+" FROM MONTHAVERAGE"; 你再定義個 String name = "M"; ----------------------------------------------------------------------------------------------------------------------------------------------------- String name="M"; String sql_str = "SELECT "+name+" FROM MONTHAVERAGE"; 你這麼寫 最後不就的字符串不就成了 "SELECT M FROM MONTHAVERAGE"; 你表裡沒有 M 列 肯定報錯啊 可以用 System.out.println(sql_str); 查看字符串拼接的結(jié)果 |

木蟲 (正式寫手)
|
public class QueryDesc { public static List<UserVo> showUser(String M) throws ClassNotFoundException { Connection conn = null; Statement stmt = null; ResultSet rs = null; List<UserVo> list = new ArrayList<UserVo>(); try { conn = JDBC_Connection.getConnection(); stmt = conn.createStatement(); //String name="M"; ????@??? String sql_str = "SELECT "+M+" FROM MONTHAVERAGE";//?????? name ??? M System.out.println(sql_str);//???????????????????Z????????_ rs = stmt.executeQuery(sql_str); while(rs.next()) { UserVo userVo = new UserVo(); userVo.setDD(rs.getInt(M));//????? M list.add(userVo); } }catch (SQLException e) { e.printStackTrace(); }finally{ JDBC_Connection.free(rs, conn, stmt); } return list; } public static void main(String[] args) throws ClassNotFoundException { System.out.print("enter month :" ;Scanner scanner=new Scanner(System.in); String str=scanner.next(); List<UserVo> list=QueryDesc.showUser(str); if(list!=null){ System.out.print("???" ;System.out.println(); for (int j = 0; j < list.size(); j++) { System.out.println(list.get(j).getDD()+"\t" ;} } } } ??????????????????????@???????? |

| 10 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 304求調(diào)劑 +6 | 司空. 2026-03-18 | 6/300 |
|
|---|---|---|---|---|
|
[考研] 328求調(diào)劑,英語六級551,有科研經(jīng)歷 +3 | 生物工程調(diào)劑 2026-03-17 | 7/350 |
|
|
[教師之家] 焦慮 +8 | 水冰月月野兔 2026-03-13 | 12/600 |
|
|
[考研] 0817 化學工程 299分求調(diào)劑 有科研經(jīng)歷 有二區(qū)文章 +7 | rare12345 2026-03-18 | 7/350 |
|
|
[考研] 297求調(diào)劑 +8 | 戲精丹丹丹 2026-03-17 | 8/400 |
|
|
[考研] 一志愿西南交大,求調(diào)劑 +4 | 材化逐夢人 2026-03-18 | 4/200 |
|
|
[考研] 299求調(diào)劑 +5 | △小透明* 2026-03-17 | 5/250 |
|
|
[考研] 268求調(diào)劑 +6 | 簡單點0 2026-03-17 | 6/300 |
|
|
[考研] 278求調(diào)劑 +5 | 煙火先于春 2026-03-17 | 5/250 |
|
|
[考研] 334求調(diào)劑 +3 | 志存高遠意在機?/a> 2026-03-16 | 3/150 |
|
|
[考研] 326求調(diào)劑 +5 | 上岸的小葡 2026-03-15 | 6/300 |
|
|
[考研] 308求調(diào)劑 +4 | 是Lupa啊 2026-03-16 | 4/200 |
|
|
[考研] 304求調(diào)劑 +4 | ahbd 2026-03-14 | 4/200 |
|
|
[考研] 318求調(diào)劑 +3 | Yanyali 2026-03-15 | 3/150 |
|
|
[考研] 321求調(diào)劑 +5 | 大米飯! 2026-03-15 | 5/250 |
|
|
[考研] 085600調(diào)劑 +5 | 漾漾123sun 2026-03-12 | 6/300 |
|
|
[考研] 考研調(diào)劑 +4 | 芬達46 2026-03-12 | 4/200 |
|
|
[考研] 土木第一志愿276求調(diào)劑,科研和技能十分豐富,求新興方向的導師收留 +3 | 土木小天才 2026-03-12 | 3/150 |
|
|
[考博] 福州大學楊黃浩課題組招收2026年專業(yè)學位博士研究生,2026.03.20截止 +3 | Xiangyu_ou 2026-03-12 | 3/150 |
|
|
[考研] 081200-11408-276學碩求調(diào)劑 +3 | 崔wj 2026-03-12 | 4/200 |
|