如何在java中编写通用的mysql查询

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


    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。任何人都可以为此提供解决方案。


尚方宝剑之说
浏览 138回答 2
2回答

潇潇雨雨

如果我删除 Quote 并将查询写入 table2(srccol_name,srccol_data)select empno,"+arr1[k]+" from empdetails 那么输出将是表2srccol_name |&nbsp;srccol_data101 101 102 102 103 103104 104但输出应该是表2srccol_name |&nbsp;srccol_data员工编号 101 员工编号 102 员工编号 103 员工编号 104

万千封印

正如您所说,您正在编写通用 sql。只需从该特定列中删除引号。它应该工作。例如:&nbsp;insert into table2(srccol_name,srccol_data) select empno,"+arr1[k]+" from empdetails所以,在运行时你的查询会变得像&nbsp;insert into table2(srccol_name,srccol_data) select empno, second_column_name from empdetails
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java