SpringData之Repository Populators的使用

需要用到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 (?, ?, ?)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值