如何使用jdbc在mysql中动态传递表名?

时间:2013-02-14 20:29:59

标签: java mysql sql jdbc

String query = "SELECT SUM(totalcost) FROM"+m+""; //where totalcost is my column name

    ResultSet rs=st.executeQuery(query);                  


    while(rs.next())
    {

    System.out.println("SUM(user_id)="+rs.getString(1));                              

    }

这段代码有什么问题?我的例外是:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:'字段列表'中的未知列'totalcost'

2 个答案:

答案 0 :(得分:2)

尝试在from代码后添加空格;

String query = "SELECT SUM(totalcost) FROM "+m+"";

答案 1 :(得分:0)

您是否可以确认您在引用的表中有一个名为“totalcost”的列中的列?如果是这样,我认为当你替换“m”变量时,表名可能不正确。

另外,我会使用预准备语句来构建MySQL查询。如果您需要更多帮助,请告诉我。

您不必担心在查询的SUM(totalcost)部分使用“AS totalcost”,因为在选择结果时,您选择:“rs.getString(1)”将返回值在结果集中该行的第一列。