No.4 Mybatis代码生成器+ Http Client访问

本文介绍如何使用SpringBoot结合MyBatis自动生成代码,通过CodeGenerater工具快速生成DAO、Model、Mapper等文件,并利用HttpClient进行RESTful方式的访问测试。详细探讨了MySQL字段类型设置、自增ID、时间戳处理等问题,以及如何通过POST方法实现数据的添加、更新和查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

No.4 Mybatis代码生成器+ Http Client访问

  • 1.Github上找了一个springboot+mybatis自动生成代码API
    https://github.com/lihengming/spring-boot-api-project-seed
    2.Git安装,在文件夹目录右键Git bash here,生成下载项目代码:git clone 你复制的项目地址(github上)
    3.填入你的sql表名,CodeGenerater自动生成dao/model/mapper/mapper.xml/service/serviceImpl/controller/
    4.IDEA-Tools-HTTP Client-RESTful 键入url测试
问题:

mysql中datetime格式设置成非空 NOT NULL的话,用 /add没法写入
换成TIMESTAMP,属性CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,自动插入更新时,更新时间。好使

5.用ship数据表,测试,CodeGenerater自动生成。
6./list 直接输出list形式所有记录
/detail 由于在mmsi上@Id,所以键入 id=44444444 ,可查询单条记录
/update 更新,由于查询根据mmsi来,所以键入 mmsi=44444444,speed=44,来更新单挑记录
/add 添加记录,mmsi=2,value=xxxx

问题:

报错:mmsi没有默认值,将数据表字段改为自增,AI,才行alter table t_ship_info modify mmsi int auto_increment;
时间戳,变成一串13位数字,得想办法转换

下一步思路:

1.http提供持续访问,client用RESTful方式访问,定时请求所以船数据,短定时-周围船舶-
在这里插入图片描述
在这里插入图片描述

按字段名查询 findBy
fieldName 指 字段名(Model中的成员变量)
value 指 值

这是AbstractService中的方法

@Override
public T findBy(String fieldName, Object value) throws TooManyResultsException {
    try {
        T model = modelClass.newInstance();
        Field field = modelClass.getDeclaredField(fieldName);
        field.setAccessible(true);
        field.set(model, value);
        return mapper.selectOne(model);
    } catch (ReflectiveOperationException e) {
        throw new ServiceException(e.getMessage(), e);
    }
}

这是controller中调用方法:

@PostMapping("/detailfindby")
public Result detailfindby(@RequestParam String fieldName, @RequestParam Object value) throws TooManyResultsException {
    Tableship tableship = tableshipService.findBy(fieldName, value);
    return ResultGenerator.genSuccessResult(tableship);
}

必须加@RequestParam 代表 @RequestParam注解将请求参数绑定到你控制器的方法参数上

在请求中,写上参数
fieldName=speed value=99
可以搜索到一条,对应的底层方法是 SelectOne

在这里插入图片描述
查询多条ByIds

 /**
     * 查询按Ids 多条返回
     * @param ids   例如 ids=1,2,3,4   String格式
     * @return      多条返回
     */
    @PostMapping("/findByIds")
    public Result findByIds(@RequestParam String ids) {
        List<Tableship> list = tableshipService.findByIds(ids);
        return ResultGenerator.genSuccessResult(list);
    }
    ```
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值