Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JSON数组中形成两个sql insert语句_Java_Mysql_Jdbc - Fatal编程技术网

Java 如何从JSON数组中形成两个sql insert语句

Java 如何从JSON数组中形成两个sql insert语句,java,mysql,jdbc,Java,Mysql,Jdbc,我得到了一个JSON数组,如下所示 [{ "link_video": "123" }, { "link_video": "456" }] 通过解析,我想创建两个insert sql作为 Insert into mytable values (123,456); Insert into mytable values (456,123);. 我已经开始如下所示,你能告诉我如何才能形成两个sql public class Testeee { public static v

我得到了一个JSON数组,如下所示

[{
    "link_video": "123"
}, {
    "link_video": "456"
}]
通过解析,我想创建两个insert sql作为

Insert into mytable values (123,456);
Insert into mytable values (456,123);.
我已经开始如下所示,你能告诉我如何才能形成两个sql

public class Testeee {

    public static void main(String[] args) throws JSONException, SQLException {

        String array = "[{\"link_video\":\"123\"},{\"link_video\":\"456\"}]";

        JSONArray array_jsn = new JSONArray(array);

        PreparedStatement PstmtdeleteforLinkVideos = null;
        Connection con;

        String sql = "Insert into mytable values (?,?)";
        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sonoo",
                "root", "root");

        PstmtdeleteforLinkVideos = con.prepareStatement(sql);
        for (int i = 0; i < array_jsn.length(); i++) {
            String id = array_jsn.getJSONObject(i).getString("link_video");
            PstmtdeleteforLinkVideos.setInt(1,Integer.parseInt(id));

            PstmtdeleteforLinkVideos.addBatch();

        }

        PstmtdeleteforLinkVideos.executeBatch();
    }

}
公共类测试对象{
公共静态void main(字符串[]args)抛出JSONException、SQLException{
字符串数组=“[{\”链接视频\“:\”123\“},{\”链接视频\“:\”456\“}]”;
JSONArray数组_jsn=新的JSONArray(数组);
PreparedStatement PstmtdeleteforLinkVideos=null;
连接con;
字符串sql=“插入mytable值(?,)”;
con=DriverManager.getConnection(“jdbc:mysql://localhost:3306/sonoo",
“根”、“根”);
PstmtdeleteforLinkVideos=con.prepareStatement(sql);
对于(int i=0;i
您的查询需要两个值。但是下面的代码只指定了一个值

for (int i = 0; i < array_jsn.length(); i++) {
    String id = array_jsn.getJSONObject(i).getString("link_video");
    PstmtdeleteforLinkVideos.setInt(1,Integer.parseInt(id));
    PstmtdeleteforLinkVideos.setInt(2,Integer.parseInt(id));
    PstmtdeleteforLinkVideos.addBatch();
}
for(int i=0;i
您还必须设置参数索引2


然后它就会工作。

它不工作吗?如果是,它在哪里失败?我无法插入第二个值PstmtdeleteforLinkVideos.setInt(1,Integer.parseInt(id));“无法插入”是什么意思?