如何在Java上执行存储在字符串变量中的多个请求?

如何在Java上执行存储在字符串变量中的多个请求?,java,sql,sql-server,jdbc,Java,Sql,Sql Server,Jdbc,我试图在java中执行一个sql查询,但它们是引用约束的几个错误。因此,我必须删除约束并每次添加它 我曾尝试编写一个代码来实现这一点,但它不起作用: public void deleteTableDevise() throws SQLException{ //connexion base Statement statement = this.getMyConnection().createStatement(); //requête s

我试图在java中执行一个sql查询,但它们是引用约束的几个错误。因此,我必须删除约束并每次添加它

我曾尝试编写一个代码来实现这一点,但它不起作用:

public void deleteTableDevise() throws SQLException{
              //connexion base
        Statement statement = this.getMyConnection().createStatement();
        //requête suppression
        ArrayList<String> listRequete = new ArrayList<String>();
        String requeteSplit = ""; 

        String deleteDataTable = "ALTER TABLE dbo.T_CORR_STANDARD NOCHECK CONSTRAINT fk_idRIB_t_corr_standard ; truncate table P_DEVISE;";

        requeteSplit= requeteSplit.concat(deleteDataTable);
        if(deleteDataTable.contains(";")){
            listRequete.add(requeteSplit);
            requeteSplit = "";
        }

        for (String uneRequete : listRequete){
            statement.executeUpdate(uneRequete);
        }


        logger.debug("Suppression de la table banque dans la table P_DEVISE - OK");
    }
public void deleteteTabledevise()引发SQLException{
//连接基
Statement Statement=this.getMyConnection().createStatement();
//需求抑制
ArrayList listRequete=新的ArrayList();
字符串requeteSplit=“”;
String deleteDataTable=“ALTER TABLE dbo.T_CORR_STANDARD NOCHECK CONSTRAINT fk_idRIB_T_CORR_STANDARD;truncate TABLE P_designe;”;
requeteSplit=requeteSplit.concat(删除数据表);
if(deleteDataTable.contains(“;”){
listRequete.add(requeteSplit);
requeteSplit=“”;
}
for(字符串uneRequete:listRequete){
报表。执行更新(不需要更新);
}
logger.debug(“抑制桌板和桌板P_装置-正常”);
}

谢谢。

所以可能是这样的:

public void deleteTableDevise() throws SQLException{
              //connexion base
        Statement statement = this.getMyConnection().createStatement();
        //requête suppression


        String deleteDataTable = "ALTER TABLE dbo.T_CORR_STANDARD NOCHECK CONSTRAINT fk_idRIB_t_corr_standard ; truncate table P_DEVISE;";
        ArrayList<String> listRequete = new ArrayList<String>();
        listRequete = deleteDataTable.split(";")

        for (String uneRequete : listRequete){
            statement.executeUpdate(uneRequete);
        }


        logger.debug("Suppression de la table banque dans la table P_DEVISE - OK");
    }
public void deleteteTabledevise()引发SQLException{
//连接基
Statement Statement=this.getMyConnection().createStatement();
//需求抑制
String deleteDataTable=“ALTER TABLE dbo.T_CORR_STANDARD NOCHECK CONSTRAINT fk_idRIB_T_CORR_STANDARD;truncate TABLE P_designe;”;
ArrayList listRequete=新的ArrayList();
listRequete=deleteDataTable.split(“;”)
for(字符串uneRequete:listRequete){
报表。执行更新(不需要更新);
}
logger.debug(“抑制桌板和桌板P_装置-正常”);
}

毫不犹豫地给我一些改进的想法!谢谢您的帮助。

这是否回答了您的问题?你的代码中没有拆分,你不需要拆分它。在一个数据库调用中运行这两个语句。这就是使用语句终止符的要点;您好,但拆分仅将一个值更改为另一个值?在这里,它就像一个“;”转换为“,”。我的目标是,当有一个“;”,直到“;”为止在上面的示例中,字符串有两条语句。你不打算两个都管吗?假设是这样的话,你就不需要把它们分开。