gpt4 book ai didi

java - java中mysql中的一句话出现问题

转载 作者:行者123 更新时间:2023-11-29 14:18:09 25 4
gpt4 key购买 nike

我正在用java开发一个程序,其中有一些sql语句,这个:

SQL="SELECT t0.id_proveedor_cloud as id_proveedor_cloud,";
SQL.concat("t1.id_procesador as id_procesador,");
SQL.concat("t2.id_tarea as id_tarea,");
SQL.concat("DATE_FORMAT(t2.f_ultima_ejecucion,'%d-%m-%Y %H:%i:%s') as f_ultima_ejecucion,");
SQL.concat("t3.id_esquema_asociado as id_esquema_asociado,");
SQL.concat("t3.descripcion as descripcion_esquema,");
SQL.concat("t3.cadena_conexion_sql as cadena_conexion_sql,");
SQL.concat("t3.url_portal_ccis as url_portal_ccis");
SQL.concat("FROM proveedores_cloud t0");
SQL.concat("INNER JOIN procesadores t1 ON t1.id_proveedor_cloud=t0.id_proveedor_cloud");
SQL.concat("INNER JOIN tareas t2 ON t2.id_procesador = t1.id_procesador");
SQL.concat("INNER JOIN esquemas_asociados t3 ON t3.id_proveedor_cloud=t0.id_proveedor_cloud");
SQL.concat("WHERE t0.id_proveedor_cloud =1");
SQL.concat("AND t1.activo = true");
SQL.concat("AND t2.activa = true");
SQL.concat("AND (TIMESTAMPDIFF(MINUTE,t2.f_ultima_ejecucion,CURRENT_TIMESTAMP) >= t2.iniciar_cada)");
SQL.concat("ORDER BY t0.id_proveedor_cloud,t2.orden");

当我尝试用 Java 程序执行它时,我在 INNER JOIN procesadores t1 ON t1.id_proveedor_cloud=t0.id_provedor_cloud 附近出现错误,但是当我在 Navicat 上执行此查询时,我不知道没有错误,错误在哪里,问题出在哪里?

最佳答案

您的查询中缺少空格。

例如这里

SQL.concat("FROM proveedores_cloud t0");
SQL.concat("INNER JOIN procesadores t1 ON t1.id_proveedor_cloud=t0.id_proveedor_cloud");

这将产生这个字符串:

从 Proveedores_cloud t0INNER JOIN procesadores t1 ON t1.id_proveedor_cloud=t0.id_provedor_cloud

这不是有效的 SQL 并且无法被查询解析​​器解析。

请参阅 String#concat 的 javadoc 示例:

 "cares".concat("s") returns "caress"

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#concat(java.lang.String )

您可以简单地修复它,方法是在连接末尾添加一个空格,例如在 FROM 子句之后:

SQL.concat("t3.url_portal_ccis as url_portal_ccis ");
SQL.concat("FROM proveedores_cloud t0 ");
SQL.concat("INNER JOIN procesadores t1 ON t1.id_proveedor_cloud=t0.id_proveedor_cloud ");
SQL.concat("INNER JOIN tareas t2 ON t2.id_procesador = t1.id_procesador ");

关于java - java中mysql中的一句话出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com