【问题标题】:Insert Arraylist into Derby Database table将 Arraylist 插入 Derby 数据库表
【发布时间】:2014-04-17 15:42:33
【问题描述】:

您好,我在将数组列表插入 derby 数据库时遇到问题,下面是我的插入表方法:

   private static void insertPerson(String id, String firstName, String lastName, String Street, String City) {
    try {
        stmt = (Statement) conn.createStatement();
        stmt.execute("insert into " + tableName + " values (" + id + ",'" + firstName + "','" + lastName + "','" + Street + "','" + City + "')");
        stmt.close();
    } catch (SQLException sqlExcept) {
        sqlExcept.printStackTrace();
    }
}

我正在尝试使用以下代码insert into database

ArrayList PersonList = new ArrayList(Arrays.asList(formatedString.split(",")));
    for (int i = 0; i < PersonList.size(); i++) {
    String []value=formatedString.split(",");
   insertPerson(value[0], value[1], value[2], value[3], value[4]);
   System.out.println(PersonList.toString());
  }

我收到以下错误:

线程AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1中的异常

任何建议都会非常感谢。

【问题讨论】:

    标签: java sql arraylist derby


    【解决方案1】:

    这可能是问题

    // 1. Split `formatedString` as a List of Persons by `,`
    ArrayList PersonList = new ArrayList(Arrays.asList(formatedString.split(",")));
    // 2. Walk through the list of persons
    for (int i = 0; i < PersonList.size(); i++) {
        // 3. Split the same `formatedString` in fields ?!?
        // What should happen here?
        // II think this is your problem        
        String []value=formatedString.split(",");
        insertPerson(value[0], value[1], value[2], value[3], value[4]);
        System.out.println(PersonList.toString());
    }
    

    更新

    您的数据的工作示例(人员之间的换行符 - 字段之间的空格)

    public class Splitter {
    
        public static void main(String[] args) {
            String values = "1 Ola Hansen Timoteivn Sandnes\n"
                    + "2 Tove Svendson Borgvn Stavanger\n"
                    + "3 Kari Pettersen Storgt Stavanger";
            String[] rows = values.split("\n");
            for (String row : rows) {
                String[] fields = row.split(" ");
                System.out.println(String.format("id: %s firstname: %s lastname: %s street: %s city %s", fields[0], fields[1], fields[2], fields[3], fields[4]));
            }
        }
    }
    

    更新 2

    此示例从文件中读取数据 (/tmp/test.txt)

    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    
    public class Splitter {
    
        public static void main(String[] args) throws FileNotFoundException, IOException {
            BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream("/tmp/test.txt")));
            String row;
            while ((row = input.readLine()) != null) {
                String[] fields = row.split(" ");
                System.out.println(String.format("id: %s firstname: %s lastname: %s street: %s city %s", fields[0], fields[1], fields[2], fields[3], fields[4]));
            }
        }
    }
    

    文件如下所示

    1 Ola Hansen Timoteivn Sandnes
    2 Tove Svendson Borgvn Stavanger
    3 Kari Pettersen Storgt Stavanger
    

    【讨论】:

    • 您好,感谢您的回复。我正在使用这一行来 String []value=formatedString.split(",");将数组列表转换为值。我不确定我可以将列表放入数据库的任何其他方式..任何建议
    • 没关系。但是formatedString 里面是什么?它是一个人及其字段(即 id、firstname、lastname...)还是人员列表?可以发一个formatedString的内容示例吗?
    • 嗨,它的人员列表..这是格式化的字符串内容 1 Ola Hansen Timoteivn Sandnes 2 Tove Svendson Borgvn Stavanger 3 Kari Pettersen Storgt Stavanger 问题出在我得到的代码上,我发现[值] 是我删除“,”时的问题,我得到以下结果 1OlaHansenTimoteivnSandnes 任何建议.. 谢谢
    • 人与人之间是否有换行符?
    • 是的……出于测试目的,我删除了它,但没有任何区别
    【解决方案2】:

    ArrayIndexOutOfBoundsException: 1 表示您的拆分 (String []value=formatedString.split(",");) 不起作用,value[1] - value [4] 中没有任何内容。确保 formatedString 中的任何内容都包含 4 个逗号,也许在进行拆分之前尝试 System.out.println(formatedString) 以查找导致异常的原因。

    【讨论】:

      猜你喜欢
      • 2011-10-09
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 2021-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      相关资源
      最近更新 更多