24小时热门版块排行榜    

查看: 1901  |  回复: 9

楚明娟

新虫 (小有名气)

[求助] 大家好,我现在遇到了一个问题,请大家帮帮忙! 已有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集合,用于存放查询出的数据

                try {


           // String Str=" SELECT '%s' FROM MONTHAVERAGE ";
                   // String.format(Str,M);          // 格式化字符串


                        conn = JDBC_Connection.getConnection();// 连接数据库
                        stmt = conn.createStatement();// 建立Statement对象;
            rs = stmt.executeQuery("SELECT 一 FROM MONTHAVERAGE " );

                                while(rs.next())// 结果集存在,则进行循环遍历
                                {

                                        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);// 关闭连接
                       }
                return list;
        }

大家好,我想知道怎样将 rs = stmt.executeQuery("SELECT 一 FROM MONTHAVERAGE " );这一句中所选的那个列名“一”变成变量,在以上的程序中我要加入一段什么样的代码来实现呢?谢谢大家!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

me_yu

木虫 (正式写手)

为什么要这么做呢?

[ 发自小木虫客户端 ]
听,寂静的夜里,田野里蛙声和虫鸣,好不欢快!
2楼2014-05-12 19:20:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
楚明娟: 金币+5, 有帮助, 谢谢您! 2014-07-14 10:00:26
CODE:
String name = "--";
String sql_str = "SELECT "+name+" FROM MONTHAVERAGE";
rs = stmt.executeQuery(sql_str);

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2014-05-12 19:23:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

楚明娟

新虫 (小有名气)

引用回帖:
2楼: Originally posted by me_yu at 2014-05-12 19:20:36
为什么要这么做呢?

因为我想计算12个月中的任何一个月都是由我可以掌控的。。
4楼2014-05-13 08:28:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

楚明娟

新虫 (小有名气)

引用回帖:
3楼: Originally posted by libralibra at 2014-05-12 19:23:05
String name = "--";
String sql_str = "SELECT "+name+" FROM MONTHAVERAGE";
rs = stmt.executeQuery(sql_str);

您好,麻烦您了,我把程序按您的提示改了之后如下:
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集合,用于存放查询出的数据

                try {


           // String Str=" SELECT '%s' FROM MONTHAVERAGE ";
                   // String.format(Str,M);          // 格式化字符串


                        conn = JDBC_Connection.getConnection();// 连接数据库
                        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())// 结果集存在,则进行循环遍历
                                {

                                        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);// 关闭连接
                       }
                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);//调用查询方法
                        //如果list集合不为空,则循环遍历打印出所有的信息
                        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);//调用查询方法
                        //如果list集合不为空,则循环遍历打印出所有的信息
                        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();
                                }
                        }



        }

}
这个,可是结果显示  : ORA-00904: "M": 标识符无效
请问是我修改的哪里有问题吗?谢谢您!
5楼2014-05-13 08:41:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

me_yu

木虫 (正式写手)

引用回帖:
5楼: Originally posted by 楚明娟 at 2014-05-13 08:41:14
您好,麻烦您了,我把程序按您的提示改了之后如下:
public class QueryDesc {



        public static List<UserVo> showUser(String M) throws ClassNotFoundException {


                Connection conn = null;
...

暈死,怎麼字符串的拼接都還那麼生疏啊,把基礎知識再過一遍吧
showUser(String M)  方法參數 M 就是個變量了
方法內部可以直接用
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);  查看字符串拼接的結果
听,寂静的夜里,田野里蛙声和虫鸣,好不欢快!
6楼2014-05-13 12:59:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

楚明娟

新虫 (小有名气)

引用回帖:
6楼: Originally posted by me_yu at 2014-05-13 12:59:52
暈死,怎麼字符串的拼接都還那麼生疏啊,把基礎知識再過一遍吧
showUser(String M)  方法參數 M 就是個變量了
方法內部可以直接用
String sql_str = "SELECT "+M+" FROM MONTHAVERAGE";
...

那我想请问:
while(rs.next())// 结果集存在,则进行循环遍历
                                {

                                        UserVo userVo = new UserVo();
                                        userVo.setDD(rs.getInt("+M+");
                                        list.add(userVo);

                                }
刚刚上边的这段程序其中一句userVo.setDD(rs.getInt("+M+")里边的+M+必须与select的那个列名保持一致,那这样又怎样变成变量呢?
刚开始接触,不好意思,麻烦您了!
7楼2014-05-13 15:17:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

me_yu

木虫 (正式写手)

???????:
7?: Originally posted by ?????? at 2014-05-13 15:17:05
???????????
while(rs.next())// ??????????????????????
                                {

                                        UserVo userVo = new UserVo();
                                        userVo.setDD(rs.getInt("+M+");
                                        list.add(userVo);

                                }
????????? ...

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朵)

听,寂静的夜里,田野里蛙声和虫鸣,好不欢快!
8楼2014-05-13 16:28:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

楚明娟

新虫 (小有名气)

送红花一朵
引用回帖:
8楼: Originally posted by me_yu at 2014-05-13 16:28:06
public class QueryDesc {
        public static List<UserVo> showUser(String M) throws ClassNotFoundException {
                Connection conn = null;
                Statement stmt = null; ...

谢谢您!谢谢您!真的达到目的了耶!
9楼2014-05-13 17:34:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

楚明娟

新虫 (小有名气)

送红花一朵
引用回帖:
8楼: Originally posted by me_yu at 2014-05-13 16:28:06
public class QueryDesc {
        public static List<UserVo> showUser(String M) throws ClassNotFoundException {
                Connection conn = null;
                Statement stmt = null; ...

非常感谢!
10楼2014-07-14 09:59:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 楚明娟 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 2JOx3r2CYEgw 2026-08-22 7/350 2026-08-23 03:55 by OEbVnUOu01ol
[论文投稿] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 2JOx3r2CYEgw 2026-08-22 5/250 2026-08-23 03:52 by OEbVnUOu01ol
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 7/350 2026-08-23 03:43 by OEbVnUOu01ol
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 QTy3jDtz1uLt 2026-08-21 9/450 2026-08-23 03:04 by OEbVnUOu01ol
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 QTy3jDtz1uLt 2026-08-21 11/550 2026-08-23 02:55 by OEbVnUOu01ol
[基金申请] 范进中举一文的中心思想 +3 zjuhero 2026-08-22 4/200 2026-08-22 20:02 by mycsru
[教师之家] 跳槽后在研项目怎么办? +3 简单化xn 2026-08-22 7/350 2026-08-22 19:46 by 简单化xn
[基金申请] 什么时候开奖? +7 CrisMessi 2026-08-18 8/400 2026-08-22 18:29 by 淀粉搬运工
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-21 4/200 2026-08-22 16:52 by sunzitan
[基金申请] 人气不行了 +8 fansofjerry 2026-08-21 8/400 2026-08-22 16:30 by zyqchem
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 看来今天不会放榜了? +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[基金申请] 让我中一个面上吧! +11 大萍1987 2026-08-20 13/650 2026-08-21 14:48 by 20120902066
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 今天系统多次维护,明天很可能放榜! +10 zju2000 2026-08-16 11/550 2026-08-20 20:02 by cl479861084
[基金申请] 重要消息,中午系统在维护 +11 yuleib84 2026-08-18 12/600 2026-08-20 11:09 by xskun
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
信息提示
请填处理意见