如何在Java中编写通用MySQL查询

时间:2018-11-13 10:40:53

标签: java

我曾尝试过使用通用方式查询,即我想以通用方式将数据从一个表发送到另一个表,而我的查询是:

    Statement mystmt=myConn.createStatement();

    ResultSet rs = mystmt.executeQuery("SELECT * FROM empdetails");
     ResultSetMetaData rsmd = rs.getMetaData();
     int columnCount=rsmd.getColumnCount();
     int i=1,j=1;
     while(j<=columnCount && i<=columnCount )
     {
         arr1[i]= rsmd.getColumnName(j);
         System.out.println(arr1[i]);
         i++;
         j++;
     } 
     int k=1;

     System.out.println(mystmt.executeUpdate("insert into table2(srccol_name,srccol_data)select 'empno',"+arr1[k]+" from empdetails"));  

这里的问题出在srccol_name(即'empno')中,我已经硬编码了columnName。 谁能为此提供解决方案。

2 个答案:

答案 0 :(得分:0)

正如您所说,您正在编写通用sql。只需删除该特定列中的引号即可。应该可以。

例如:insert into table2(srccol_name,srccol_data) select empno,"+arr1[k]+" from empdetails

因此,在运行时您要查询的内容将变得像insert into table2(srccol_name,srccol_data) select empno, second_column_name from empdetails

答案 1 :(得分:0)

如果我删除Quote并写Query像 插入到table2(srccol_name,srccol_data)中,从empdetails中选择empno,“ + arr1 [k] +” 然后输出将是

表2

srccol_name | srccol_data

101101 102102 103103

104 104

但是输出应该是

表2

srccol_name | srccol_data

empno 101 empno 102 empno 103 empno 104