从Java Servlet以正确的格式将数据插入mysql表

时间:2019-07-13 07:49:26

标签: java mysql regex string

我从购物车javascript到jsp获取购物车项目和购物车价格,然后将其从jsp传输到servlet,如下所示:

String a= request.getParameter("cartitems");//but it prints like Jan-2019Feb-2019March-2019

String b=request.getParameter("cartprice");//prints like $100,$200,$400

我需要将数据存储在数据库中,如下所示:

 Cart          Price
Jan-2019        $100
Feb-2019        $200
March-2019      $400

我正在尝试分隔此Jan-2019Feb-2019March-2019,以便可以将其存储在我的表中,但无法这样做,Jan-2019Feb-2019March-2019不需要用日期格式分隔,可以如果可能,请使用任何合适的正则表达式分隔。

我试图按如下方式分隔字符串a,但它不起作用。

     String[] result = a.split(",");
     out.println(Arrays.toString(result));// prints [June-2019March-2019]

如何在我的数据库表中存储上述数据,请帮忙!提前非常感谢!

1 个答案:

答案 0 :(得分:1)

  1. 从您的servlet请求中获取参数:
String cartItemsParameter= request.getParameter("cartitems");
  1. 使用方法:
findRexExpList(cartItemParameter, "\\D+\\d+");

方法代码:

 private static List<String> findRexExpList(String text, String regExp) {
    List<String> result = new ArrayList<>();
    Pattern pattern = Pattern.compile(regExp);
    Matcher matcher = pattern.matcher(text);
    while (matcher.find()) {
        String group = matcher.group();
        result.add(group);
    }
    return result;
}
  1. 此方法返回带有分隔字符串的列表
  2. 对于商店数据:
List<String> carts = findRexExpList(cartItemParameter, "\\D+\\d+");
String[] cartPrices = request.getParameter("cartprice").split(",");
for(int i=0; i<cartPrices.length; i++){
   String cart = carts.get(i);
   String price = cartPrices[i];
   //insert cart and price
}