需要用到Jackson或者JAXB
1. Jackson依赖引入:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.1</version>
</dependency>
2.实体类:
package com.example.activitydemo.entity;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.AfterDomainEventPublication;
import org.springframework.data.domain.DomainEvents;
import javax.persistence.*;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
@Entity(name = "TB_TEST_PERSON")
@Data
@RequiredArgsConstructor
@NoArgsConstructor
public class TestPerson {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "ID_")
private Integer id;
@Column(name = "CITY_")
@NonNull
private String city;
@Column(name = "NAME_")
@NonNull
private String name;
@Transient
private Date date;
}
3.resource下创建data.json文件
[ { "_class" : "com.example.activitydemo.entity.TestPerson",
"city" : "city_test5",
"name" : "name_test5" },
{ "_class" : "com.example.activitydemo.entity.TestPerson",
"city" : "city_test6",
"name" : "name_test6" } ]
data.json文件属性说明:
会根据"_class"属性值寻找相应的实体类,且此实体类必须是以@Entity注解的实体类
我的实体类中有city和name字段值,所以写法如上
4.创建beans.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:repository="http://www.springframework.org/schema/data/repository"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/data/repository
http://www.springframework.org/schema/data/repository/spring-repository.xsd">
<repository:jackson2-populator locations="classpath:data.json" />
</beans>
通过<repository:jackson2-populator>标签引入data.json文件位置
5.我用的springboot框架,所以还需要引入此bean.xml配置文件
@Configuration
@ImportResource(locations ={"beans.xml"})
public class SpringDataConfig {
}
6.项目启动会自动解析data.json中内容,然后调用实体类对应的insert方法入库。
打印日志如下:insert into tb_test_person (city_, name_, id_) values (?, ?, ?)