Springboot+Mybatis-plus查询带有json格式数据列表,以及将json格式的数据插入数据库

1.库表设计

2.实体类

mport cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;
/**
* @author YaoHongli
* @since 2023-08-07 16:31:26
*/
@Data
@TableName(value = "goods_bill",autoResultMap = true)
public class GoodsBill {
    private Integer id;
    
    @TableField(value = "goods",typeHandler = JacksonTypeHandler.class)
    private JSONArray goods;
    
    @TableField(value = "user_message",typeHandler = JacksonTypeHandler.class)
    private JSONObject userMessage;
}

3.Mapper层

@Mapper
public interface GoodsBillMapper {

    void addGoodsBill(GoodsBill goodsBill);

    List<GoodsBill> getGoodsList();

}

4.Service层

public interface GoodsBillService{
    void addGoodsBill(GoodsBill goodsBill);

    List<GoodsBill> getGoodsList();

}

5.ServiceImpl

@Slf4j
@Service
@RequiredArgsConstructor
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class GoodsBillServiceImpl implements GoodsBillService {
    @Autowired
    private GoodsBillMapper goodsBillMapper;

    @Override
    public void addGoodsBill(GoodsBill goodsBill){
        goodsBillMapper.addGoodsBill(goodsBill);
    }

    @Override
    public List<GoodsBill> getGoodsList() {
        return goodsBillMapper.getGoodsList();
    }
}

6.Controller

 @RestController
public class GoodsBillController {


    @Autowired
    private GoodsBillService goodsBillService;

    @RequestMapping("/goodsBillList")
    public List<GoodsBill> goodsBillList() {
        List<GoodsBill> goodsBillList = goodsBillService.getGoodsList();
        return goodsBillList;
    }

    @RequestMapping("/addGoodsBill")
    public String addGoodsBill(@RequestBody GoodsBill goodsBill){
        goodsBillService.addGoodsBill(goodsBill);
        return goodsBill.toString();
    }

7.Mapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yhl.log.mapper.GoodsBillMapper">
    <resultMap id="BaseResultMap" type="com.yhl.log.entity.GoodsBill">
        <id column="id" jdbcType="BIGINT" property="id"></id>
        <result column="goods" jdbcType="OTHER" property="goods" javaType="cn.hutool.json.JSONArray" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"></result>
        <result column="user_message" jdbcType="OTHER" property="userMessage" javaType="cn.hutool.json.JSONObject" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"></result>
    </resultMap>

    <select id="getGoodsList" resultMap="BaseResultMap">
        select * from goods_bill
    </select>

    <insert id="addGoodsBill" useGeneratedKeys="true" keyProperty="id">
        insert into goods_bill(goods,user_message)
        values(#{goods,jdbcType=OTHER,typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},#{userMessage,jdbcType=OTHER,typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler})
    </insert>
</mapper>

8.application文件

server:
  port:  9999
spring:
  datasource:
    url: "jdbc:mysql://localhost/jsontest"
    username: "root"
    password: "123456"
mybatis:
  mapper-locations: classpath:/mapper/*Mapper.xml
  type-handlers-package: com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
  configuration:
    map-underscore-to-camel-case: true

9.pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.22</version>
        </dependency>

    </dependencies>

10.获取列表

 11.新增订单

请求头是contentType:application/json

 

参考博客有Mybatis读取和存储json类型的数据_怪 咖@的博客-CSDN博客SpringBoot中MyBatis 处理 MySQL5.7 的json字段数据_springboot mybatis json字段_LiXiuu的博客-CSDN博客

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot和MyBatis-Plus是现代Java应用开发中的两个流行框架组合,它们一起简化了企业级应用程序的快速搭建。以下是一个基本的Spring Boot + MyBatis-Plus的整体开发流程: 1. **项目初始化**: - 创建一个新的Spring Boot项目(使用Maven或Gradle构建工具)。 - 添加Spring Boot Web、Spring Data JPA和MyBatis-Plus的依赖。 2. **数据库配置**: - 配置数据源(如HikariCP, Druid, 或者Spring Boot内置的DataSource)。 - 定义数据库连接池和JDBC驱动。 3. **实体类映射**: - 创建Java实体类(Entity),它们将对应数据库表结构。 - 使用MyBatis-Plus的Model Generator工具自动生成基础CRUD操作的代码。 4. **Mapper接口生成**: - 通过MyBatis-Plus的全局配置文件(GlobalConfig),指定Mapper接口生成的位置。 5. **Service层编写**: - 实现业务逻辑的服务类(Service),这些类通常会依赖于MyBatis-Plus的Mapper接口进行数据库操作。 6. **Repository接口和实现**: - 如果需要,可以创建Repository接口,继承自MyBatis-Plus的BaseMapper,进一步定制化查询。 7. **Controller层处理**: - 创建RESTful API控制器(Controller),调用Service层的方法,并返回JSON响应给客户端。 8. **配置数据初始化**: - 编写Spring Boot的启动类(Application)中的main方法,可能包含一些数据初始化操作。 9. **测试**: - 使用单元测试(JUnit, TestNG等)确保各个组件正常工作,如Service和Mapper接口的测试。 10. **部署**: - 部署项目到生产环境,如Tomcat, Jetty, 或者云服务器上的Web容器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值