介绍
这篇文章将为大家详细讲解有关java如何利用json文件来实现数据库数据的导入导出,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
背景:
工作中我们可能会遇到需要将某个环境中的某些数据快速的移动到另一个环境的情况,此时我们就可以通过导入导出json文件的方式实现。
举例:
我们将这个环境的数据库中用户信息导出为一份json格式文件,再直接将json文件复制到另一个环境导入到数据库,这样可以达到我们的目的。
下面我将使用springboot搭建用户数据信息的导入导出案例,实现了单用户和多用户数据库信息的导入导出功能。认真看完这篇文章,你一定能掌握导入导出json文件的核心
准备工作
需要maven依赖坐标:
& lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-web & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-actuator & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-thymeleaf & lt;/dependency> & lt; dependency> & lt; groupId> org.projectlombok & lt; artifactId> lombok & lt; optional> true & lt;/dependency> & lt; dependency> & lt; groupId> org.mybatis.spring.boot & lt; artifactId> mybatis-spring-boot-starter & lt; version> 2.1.0 & lt;/dependency> & lt; dependency> & lt; groupId> mysql & lt; artifactId> mysql-connector-java & lt; version> 8.0.18 & lt;/dependency> & lt; dependency> & lt; groupId> org.springframework.boot & lt; artifactId> spring-boot-starter-jdbc & lt;/dependency> & lt; dependency> & lt; groupId> com.alibaba & lt; artifactId> fastjson & lt; version> 1.2.29 & lt;/dependency> & lt; dependency> & lt; groupId> org.codehaus.jackson & lt; artifactId> jackson-mapper-asl & lt; version> 1.9.13 & lt;/dependency>
数据库中的用户信息:
这些字段信息与Java中的UserEntity实体类一一对应
功能实现
准备好依赖和数据库信息之后,开始搭建用户导入导出具体框架:
导入导出单用户,多用户功能实现UserUtil
包com.leige.test.util; 进口com.alibaba.fastjson.JSON; 进口com.alibaba.fastjson.JSONObject; 进口com.alibaba.fastjson.serializer.SerializerFeature; 进口com.leige.test.entity.UserEntity; 进口com.leige.test.entity.UserEntityList; 进口com.leige.test.model.ResultModel; 进口com.leige.test.service.UserService; 进口org.apache.commons.io.FileUtils; 进口org.codehaus.jackson.map.ObjectMapper; 进口org.springframework.util.ObjectUtils; 进口org.springframework.web.multipart.MultipartFile; 进口javax.servlet.http.HttpServletResponse; 进口. io . *; 进口java.net.URLEncoder; 进口并不知道; 进口java.util.UUID; 公开课UserUtil {//导入用户 公共静态ResultModel importUser (MultipartFile MultipartFile, UserService UserService) { ResultModel ResultModel=new ResultModel (); 尝试{//获取原始名字 字符串文件名=multipartFile.getOriginalFilename ();//获取后缀名 字符串suffixName=fileName.substring (fileName.lastIndexOf (“!”);//先将. json文件转为字符串类型 文件文件=新文件(“/?文件名);//将MultipartFile类型转换为文件类型 FileUtils.copyInputStreamToFile (multipartFile.getInputStream()、文件); 字符串jsonString=FileUtils。readFileToString(文件,“UTF-8");//如果是json或者txt文件 如果“.json" .equals (suffixName) | |“.txt" .equals (suffixName)) {//再将json字符串转为实体类 JSONObject JSONObject=JSONObject.parseObject (jsonString); UserEntity UserEntity=JSONObject。toJavaObject (jsonObject, UserEntity.class); userEntity.setId(空); .toString userEntity.setToken (UUID.randomUUID () ());//调用创建用户的接口 userService.addUser (userEntity); 其他}{ resultModel.setStatusCode (0); resultModel.setStatusMes(“请上传正确格式的. json或. txt文件!“); } }捕捉(异常e) { e.printStackTrace (); } 返回resultModel; }//批量导入用户 公共静态ResultModel importUsers (MultipartFile MultipartFile, UserService UserService) { ResultModel ResultModel=new ResultModel (); 尝试{//获取原始名字 字符串文件名=multipartFile.getOriginalFilename ();//获取后缀名 字符串suffixName=fileName.substring (fileName.lastIndexOf (“!”);//先将. json文件转为字符串类型 文件文件=新文件(“/?文件名);//将MultipartFile类型转换为文件类型 FileUtils.copyInputStreamToFile (multipartFile.getInputStream()、文件); 字符串jsonString=FileUtils。readFileToString(文件,“UTF-8");//如果是json或者txt文件 如果“.json" .equals (suffixName) | |“.txt" .equals (suffixName)) {//再将json字符串转为实体类 JSONObject JSONObject=JSONObject.parseObject (jsonString); UserEntityList UserEntityList=JSONObject。toJavaObject (jsonObject, UserEntityList.class); Listjava如何利用json文件来实现数据库数据的导入导出