如何在java中构建动态查询

如何在java中构建动态查询,java,mysql,stored-procedures,Java,Mysql,Stored Procedures,我在MySQL服务器中有一个动态查询,如下所示,现在我想在我的Java程序中获得这个查询的结果。我已经在互联网上搜索过了,但找不到相关的解决方案。请给我指出正确的方向。谢谢 SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'COALESCE(GROUP_CONCAT(DISTINCT case when branch = ''', branch, ''' then

我在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; 设置@sql=NULL; 挑选 组_CONCAT(不同 海螺( '合并(组_CONCAT)(分支=''时的不同情况), 分支机构, ''然后状态结束,''确定'')作为'', CONCAT('分支',分支) ) )进入@sql 来自表1; 设置@sql=CONCAT('SELECT productName',@sql,' 来自表1 按产品名称分组'; 从@sql准备stmt; 执行stmt;
使用JAVA中的
PreparedStatement
或其子类型
CallableStatement
,并通过适当的数据库连接从JAVA代码调用
execute()

public void executeProcedure() throws SQLException {
  Connection con = DriverManager.getConnection("jdbc:default:connection");
  CallableStatement cs = this.con.prepareCall("{call <PROCEDURE_NAME>()");
  cs.execute();
}
public void executeProcedure()引发SQLException{
Connection con=DriverManager.getConnection(“jdbc:default:Connection”);
CallableStatement cs=this.con.prepareCall(“{call()”);
cs.execute();
}
如果有任何参数要发送到过程,请将它们作为逗号分隔的问号包含在括号中,然后分别设置它们的值

请参阅文档和教程示例