我有一个有效的动态查询,如下面的MySQL服务器所示,现在我想要的是在我的Java程序中从这个查询中获取结果。我搜索过互联网但无法找到相关的解决方案。请指出我正确的方向。感谢
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'COALESCE(GROUP_CONCAT(DISTINCT case when branch = ''', branch, ''' then status end),''OK'') AS ', CONCAT('Branch',branch) ) ) INTO @sql FROM Table1; SET @sql = CONCAT('SELECT productName, ', @sql, ' FROM Table1 GROUP BY productName'); PREPARE stmt FROM @sql; EXECUTE stmt;
答案 0 :(得分:0)
使用PreparedStatement
或它的子类型,JAVA中的CallableStatement
,并使用正确的数据库连接从您的JAVA代码中调用execute(<QUERY_NAME>)
。
public void executeProcedure() throws SQLException {
Connection con = DriverManager.getConnection("jdbc:default:connection");
CallableStatement cs = this.con.prepareCall("{call <PROCEDURE_NAME>()");
cs.execute();
}
如果您要将任何参数发送到过程,请在括号中将它们包含为逗号分隔的问号,然后单独设置它们的值。