如何使用 mvc spring 将 JSON 数组插入 MySQL

Posted

技术标签:

【中文标题】如何使用 mvc spring 将 JSON 数组插入 MySQL【英文标题】:how to insert JSON array into MySQL using mvc spring 【发布时间】:2015-11-10 21:12:11 【问题描述】:

嗨,我是春天的新手,正在开发一个 POST 模块。 如何在数据库中插入 JSON 数组。 你能告诉我如何解决这个问题吗?

我还有一个例子可以向你展示这一点。 链接:-http://hello-angularjs.appspot.com/angularjs-http-service-ajax-post-json-data-code-example

这里是控制器代码

@RequestMapping(value = "/create1", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody
BillingModel addbillingmodel(@RequestBody BillingModel billingmodel) 
    try  


        billingmodel.getItemid();
        billingmodel.getQuantity();

        dataServices.addEntity(billingmodel); 


        return billingmodel;
     catch (Exception e) 
         e.printStackTrace();
        return billingmodel;
    

   
  

这是我的带有 JSON 的 html 页面。

<!DOCTYPE html>
<html data-ng-app="serviceModule">
<head>
<meta charset="ISO-8859-1">
<title>AngularJS POST Spring MVC</title>
<script    
src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js">   
</script>
<script type="text/javascript">

var serviceModule = angular.module('serviceModule', []);

serviceModule.controller("AngularJSPostController", function($scope, $http) 

        $scope.variable = "AngularJS POST Spring MVC Example:"; 
        var dataObj = 
                "itemid" : "11",
                "quantity" : "22",


        ;      

        var response = 
   $http.post('/CRUDWebAppMavenized/billing_bakery/create1', dataObj);
        response.success(function(data, status, headers, config) 
            $scope.responseData = data;
        );
        response.error(function(data, status, headers, config) 
            alert( "Exception details: " + JSON.stringify(data: data));
        );

    );

 </script>
 </head>
 <body data-ng-controller="AngularJSPostController"> 




  <div>
    <h4>variable</h4>
    <b>You had sent below data through post:</b>
    <p>Response:  responseData</p>      
  </div>

  </body>
</html>

我必须连续处理多个数据。

【问题讨论】:

【参考方案1】:

1.在您的 BillingModel 类中创建以下方法 -

     import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
     import com.fasterxml.jackson.core.JsonParseException;
     import com.fasterxml.jackson.core.JsonProcessingException;
     import com.fasterxml.jackson.databind.JsonMappingException;
     import com.fasterxml.jackson.databind.ObjectMapper;
     public String toJson() throws JsonProcessingException 
       ObjectMapper mapper = new ObjectMapper();
       String json = mapper.writeValueAsString(this);
       return json;
    

2.你应该有 blob 类型的列来存储 JSON

3.当你调用 addEntity 时,在你的 DAO 类中,做这样的事情 -

final MapSqlParameterSource sqlParams = new MapSqlParameterSource()
.addValue("item_json",billingModel.toJson().getBytes("UTF-8"));

您也可以参考。 Converting Java objects to JSON with Jackson

【讨论】:

2. 你应该有 blob 类型的列来存储 JSON ???实际上我想在表列中插入 JSON 数据作为字符串值,那么为什么要使用 blob? String json 只是一个 String ,如果你想存储在 VARCHAR 中你也可以这样做。在 mysql 中有 text 类型的列来存储长字符串数据

以上是关于如何使用 mvc spring 将 JSON 数组插入 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

spring MVC 如何接收前台传入的JSON对象数组

JSON - Spring MVC:如何将 json 数据发布到 Spring MVC 控制器

Spring mvc 返回json数组中的日期怎么格式化?

带有 MVC 的 Spring 3 JSON

Spring mvc jackson json mapper-如何将unicode编码应用于json响应中的特殊字符

spring mvc接收参数方式,json格式返回请求数据