【问题标题】:How to save array in MySQL using Servlet?如何使用 Servlet 在 MySQL 中保存数组?
【发布时间】:2014-05-13 16:04:15
【问题描述】:

我有一个类似的数组

[ BARIUM SWALLOW UPPER GI ,  600.0 ,  600.0 ,  BONE SCAN ,  1250.0 ,  1250.0 ,  BARIUM SWALLOW ,  850.0 ,  850.0 ]

这里我必须根据数组大小将前 3 个值保存在 1 行中,然后将下 3 个值保存在下一行中,并且这个数组不是固定的,它可能会增加或减少。

我试过了:

String actions= req.getParameter("tvalues");

final Pattern pattern = Pattern.compile(",");
final String[] result = pattern.split(actions);

System.out.println(Arrays.toString(result));
List<String> testinfo = Arrays.asList(actions.split(","));

for (j=0;j<testinfo.size();j++) {
    System.out.println(testinfo.get(j));
}

【问题讨论】:

    标签: java mysql arrays servlets


    【解决方案1】:

    由于我们有列表对象,每次迭代它都会得到三个参数名称,no,no1,如果你将这些参数发送到 writeToDb 函数。在该函数中它将更新到数据库..

        list = Arrays.asList(str.split(","));  
        for (int i = 0; i < list.size(); i += 3) {
    
            String name = list.get(i);
            String no = list.get(i + 1);
            String no1 = list.get(i + 2);
            System.out.println(name + no + no1);
            writeToDb(name, no, no1);
         }
    

    创建一个 wirteToDb 函数

    public static void writeToDb(String name, String no, String no1) {
    
     //connect to database
        String insertTableSQL = "INSERT INTO DBUSER"
                + "(USERNAME, no, no1) VALUES" + "(?,?,?)";
        PreparedStatement preparedStatement = dbConnection
                .prepareStatement(insertTableSQL);
        preparedStatement.setString(1, name);
        preparedStatement.setString(2, no);
        preparedStatement.setString(3, no1);
        preparedStatement.executeUpdate();
    
    }
    
       }
    

    【讨论】:

    • 在插入查询中:您提供 4 个字段但 3 个值,这是语法错误还是我在这里遗漏了什么?
    猜你喜欢
    • 2018-02-08
    • 2022-01-14
    • 1970-01-01
    • 2015-06-24
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 2017-03-30
    相关资源
    最近更新 更多