java-如何在数据库中插入多个不同长度的数组

java-如何在数据库中插入多个不同长度的数组,java,arrays,spring-mvc,Java,Arrays,Spring Mvc,我有3个不同长度的数组。我需要将所有3个数组中的值插入到数据库表中 这是我的阵列: //Array1 length int id_hutang = model.getId_hutang().length; //3 //Array2 length int jlh_pengeluaran = model.getJlh_pengeluaran().length; //5 //Array3 length int id_keagenan = model.getId_keagenan().length; /

我有3个不同长度的数组。我需要将所有3个数组中的值插入到数据库表中

这是我的阵列:

//Array1 length
int id_hutang = model.getId_hutang().length; //3
//Array2 length
int jlh_pengeluaran = model.getJlh_pengeluaran().length; //5
//Array3 length
int id_keagenan = model.getId_keagenan().length; //4
我将检索3个数组中的最大长度

int largest = Math.max(id_hutang,Math.max(jlh_pengeluaran,id_keagenan));
并将最大长度作为for循环的基值

for(int i=0; i<largest; i++)
{
   String sql = "INSERT INTO surat_jalan (a, b, c) VALUES (?, ?, ?)";
   template.update(sql, model.getId_hutang()[i], model.getJlh_pengeluaran()[i], model.getId_keagenan()[i]);
}
for(inti=0;iid_hutang){
a=“”;
}否则{
a=model.getId_hutang()[i];
}
如果(i>jlh_pengeluaran){
b=“”;
}否则{
b=model.getJlh_pengeluaran()[i];
}
如果(i>id_keagenan){
c=“”;
}否则{
c=model.getId_keagenan()[i];
}
模板更新(sql、a、b、c);
}

在model.getId_hutang()和model.getId_keagenan()中获取的值超出范围

试试这个

int id_hutang = model.getId_hutang().length;
int jlh_pengeluaran = model.getJlh_pengeluaran().length;
int id_keagenan = model.getId_keagenan().length;

int largest = Math.max(id_hutang,Math.max(jlh_pengeluaran,id_keagenan));

for(int i=0; i<largest; i++)
{
   String sql = "INSERT INTO surat_jalan (a, b, c) VALUES (?, ?, ?)";
   template.update(sql, 
                     (i<id_hutang)?model.getId_hutang()[i]:0, 

                     (i<jlh_pengeluaran)?model.getJlh_pengeluaran()[i]:0,

                     (i<id_keagenan)?model.getId_keagenan()[i]:0);
} 
了解更多关于

考虑一下您的数据库设计,试试NoSQL-MongoDB?尝试使用“while”结构而不是“for”。@biladina assign null,如果对象中没有任何值,那么所有bean类的长度都可以相同。您还可以将相同的null插入数据库。您不需要更改任何数据库design@divine问题是我无法将数据插入数据库,因为我的数组中的元素长度不同,并且数组元素从输入字段是动态的..是的,我忘了在三元运算中提到-1,但是“<”这很酷,你的
I
应该是
I@mamtora谢谢,行得通,你救了我的命,伙计…-)
for(int i=0; i<largest; i++)
{
   String sql = "INSERT INTO surat_jalan (a, b, c) VALUES (?, ?, ?)";
   String a="",b="",c="";
   if(i>id_hutang ){
    a="";
   }else{
    a=model.getId_hutang()[i];
   }
    if(i>jlh_pengeluaran ){
    b="";
   }else{
    b=model.getJlh_pengeluaran()[i];
   }
    if(i>id_keagenan ){
    c="";
   }else{
    c=model.getId_keagenan()[i];
   }

   template.update(sql, a,b,c);
}
int id_hutang = model.getId_hutang().length;
int jlh_pengeluaran = model.getJlh_pengeluaran().length;
int id_keagenan = model.getId_keagenan().length;

int largest = Math.max(id_hutang,Math.max(jlh_pengeluaran,id_keagenan));

for(int i=0; i<largest; i++)
{
   String sql = "INSERT INTO surat_jalan (a, b, c) VALUES (?, ?, ?)";
   template.update(sql, 
                     (i<id_hutang)?model.getId_hutang()[i]:0, 

                     (i<jlh_pengeluaran)?model.getJlh_pengeluaran()[i]:0,

                     (i<id_keagenan)?model.getId_keagenan()[i]:0);
} 
-----------------------------------------------
|   a        |       b       |      c         |
-----------------------------------------------
|  23        |  500000       |  3             |
-----------------------------------------------
|  4         |  500000       |  4             |
-----------------------------------------------
|  10        |  500000       |  6             |
-----------------------------------------------
|   0        |  300000       |  8             |
-----------------------------------------------
|   0        |  600000       |  0             |
-----------------------------------------------