Java和MySQL PreparedStatement:在一个表中存储5000个数字。什么';这条路对吗?

Java和MySQL PreparedStatement:在一个表中存储5000个数字。什么';这条路对吗?,java,mysql,Java,Mysql,我正在使用JavaFacebookAPI编写一个facebook应用程序 以及MySQL 5.1 我试图找到一种更快的方法来存储登录到我的应用程序的用户的好友列表 当用户登录到我的应用程序时,会发生以下情况: 删除登录用户的旧朋友列表 正在将用户好友列表收集到ArrayList中 在Java中,我对数组列表中的每个数字执行for循环,并执行insert将新的朋友id插入到friends表中 有没有办法让这一切更快 例如,我想创建一个存储过程来接收当前用户的uid和朋友的uid数组,但我读到并理解

我正在使用JavaFacebookAPI编写一个facebook应用程序 以及MySQL 5.1

我试图找到一种更快的方法来存储登录到我的应用程序的用户的好友列表

当用户登录到我的应用程序时,会发生以下情况:

  • 删除登录用户的旧朋友列表
  • 正在将用户好友列表收集到ArrayList中
  • 在Java中,我对数组列表中的每个数字执行for循环,并执行insert将新的朋友id插入到friends表中
  • 有没有办法让这一切更快

    例如,我想创建一个存储过程来接收当前用户的uid和朋友的uid数组,但我读到并理解MySQL 5.1中的存储过程不能接收数组

    朋友列表表非常简单:

    id int(10) <- primary key
    user_friends_uid bigint
    timestamp TIMESTAMP
    

    id int(10)您可以使用JDBC批量更新:

        PreparedStatement stmt = getSql().prepareStatement(...);
        try {
            for (Row row: rows) {
                stmt.setLong(1, row.id);
                ...
                stmt.addBatch();
            }
            stmt.executeBatch();
        } finally {
            stmt.close();
        }