比较两个表中的值,并将从第一个表中获取的值插入第二个表

时间:2014-03-10 09:07:12

标签: java mysql sql arraylist

请帮忙! 我有2个表:信息和消息 信息的列为:

id  name   location   description  from
1    abc    def         ghijg      123
2    xyz    wqk        fdgbf       234
3    tuv    ghn        hndBD       345

消息的列为:

id   text     from          created_at
1    HI        123             12345
1    hey       123             12345
2    hello     234             98765

我想在Message中插入新值,并使用相应的Info值id设置id(在Message中)的值。如示例所示,消息中的id 1告诉我们该行对应于Info表的id 1。

我正在编写Java代码以将新值插入Message。

我的表很大,所以我将Info中的id和名称存储到ArrayList中,然后比较ArrayList中的id,并且某些名称值为null。我使用for循环迭代ArrayList,然后将名称值与我从twitter调用并插入Message的另一个名称值进行比较。 代码是:

for(Bank v: bankid){   
    if(v.getName()== null || v.getName().equals(Name)){
        if(v.getName().equals(Name)){
            System.out.println(v.getId());
            ps.setString(1,v.getId());
        }
    }
}

将从Info Table中获取的id值与其他值一起插入Message。

我无法插入任何新值。我怎么做? 我正在使用这个声明:

 String sql = "INSERT INTO MESSAGE(ID,text,from,craeted_at) VALUES (ID,?,?,?)";
            PreparedStatement ps = conn.prepareStatement(sql);

请帮忙! 谢谢!

1 个答案:

答案 0 :(得分:0)

首先 -

if(v.getName()== null || v.getName().equals(Name))

此行可以为您提供空指针异常。因此,将支票更改为

if(v.getName()!= null || Name.equals(v.getName()))

然后插入预准备语句Ex。

中的值
      ps.setInt(1,23);
      ps.setString(2,"Roshan");
      ps.setString(3, "CEO");
      ps.executeUpdate();