mybatis-plus实操

如何生成完全看项目,有的人是用管理系统生成,还有其他人可能是.....。博主这里是用插件生成

我是插件的话,先在ide连接上数据源,然后对表右键,直接来到下面这个步骤,

第一次是新增6个文件,我们写接口,第一次是要动六个文件的,第一个是Controller层,第二个是Service接口(注册方法给Controller调用的),第三个是ServiceImpl实现类,第四个是实体类,对应数据库表(可以当作前端接受参数类型),第五个是Mapper.xml文件,在xml文件后面要写sql查询的,第六个是Mapper.java文件(在这里写@DS('数据源名称'),这里的方法名称与xml文件的sql对应的id

 再进行下面选择 ,注意项目用的mybatis版本

然后会生成下面这些

 resources下的xml根据你的application.ym里面的  mybatis-plus 的 mapper-locations(xml 扫描路径)来放,我这边是resources的mapper,实体类路径就是 type-aliases-package

 注意修改BchzdtMapper.xml的  namespace  和  type  ,namespace 的路径是另一个跟xml同命的java文件,type就是数据库的实体类。

接下来进入实操练习吧,写一个接口,前端传编号和日期。都是必填参数

controller控制层

package com.yupi.controller;

import com.yupi.entity.Bchzdt;
import com.yupi.entity.FebsResponse;
import com.yupi.service.BchzdtService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.List;

/**
 * 管理控制器
 */
@RestController
@RequestMapping("/api/bchzdt")
public class BchzdtController {

    @Autowired
    private BchzdtService bchzdtService;
    
    /**
     * 根据编号和日期查询交接班记录
     * @param ksbh 编号,不能为空
     * @param date 查询日期,格式:yyyy-MM-dd HH:mm:ss,不能为空
     * @return 查询结果
     */
    @GetMapping("/query")
    public FebsResponse queryByKsbh(
            @RequestParam(required = true) Long ksbh,
            @RequestParam(required = true) @DateTimeFormat(pattern = "yyyy-MM-dd") Date date
    ) {
        if (ksbh == null) {
            return new FebsResponse().fail().message("编号不能为空");
        }
        
        if (date == null) {
            return new FebsResponse().fail().message("查询日期不能为空");
        }
        
        try {
            List<Bchzdt> bchzdtList = bchzdtService.findByKsbhAndDate(ksbh, date);
            return new FebsResponse().success().data(bchzdtList).message("查询成功");
        } catch (Exception e) {
            return new FebsResponse().fail().message("查询失败:" + e.getMessage());
        }
    }
}

BchzdtService.java  实现类的接口

package com.yupi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yupi.entity.Bchzdt;

import java.util.Date;
import java.util.List;

/**
* @author
* @description 针对表【BCHZDT】的数据库操作Service
* @createDate 2025-05-14 16:08:19
*/
public interface BchzdtService extends IService<Bchzdt> {
    /**
     * 根据编号和日期查询记录
     * @param ksbh 编号
     * @param date 查询日期
     * @return 记录列表
     */
    List<Bchzdt> findByKsbhAndDate(Long ksbh, Date date);
}

实现类  BchzdtServiceImpl.java

package com.yupi.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yupi.entity.Bchzdt;
import com.yupi.mapper.BchzdtMapper;
import com.yupi.service.BchzdtService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
* @author 
* @description 针对表【BCHZDT】的数据库操作Service实现
* @createDate 2025-05-14 16:08:19
*/
@Service
public class BchzdtServiceImpl extends ServiceImpl<BchzdtMapper, Bchzdt>
    implements BchzdtService {
    
    @Autowired
    private BchzdtMapper bchzdtMapper;
    

    /**
     * 根据编号和日期查询记录
     * @param ksbh 编号
     * @param date 查询日期
     * @return 记录列表
     */
    @Override
    public List<Bchzdt> findByKsbhAndDate(Long ksbh, Date date) {
        return bchzdtMapper.findByKsbhAndDate(ksbh, date);
    }
}




BchzdtMapper.xml

package com.yupi.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yupi.entity.Bchzdt;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
* @author 
* @description 针对表【BCHZDT】的数据库操作Mapper
* @createDate 2025-05-14 16:08:19
* @Entity generator.entity.Bchzdt
*/
@DS("emr") // 指定使用emr数据源
public interface BchzdtMapper extends BaseMapper<Bchzdt> {

    /**
     * 根据编号和日期查询记录
     * @param ksbh 编号
     * @param date 查询日期
     * @return 记录列表
     */
    List<Bchzdt> findByKsbhAndDate(@Param("ksbh") Long ksbh, @Param("date") Date date);
}




mybatis操作数据库的方式
查询方式是否推荐适用场景
XML SQL 定义推荐复杂查询、性能优化
注解 SQL推荐简单查询
LambdaQueryWrapper推荐类型安全、链式调用
QueryWrapper推荐动态字段
自定义 SQL推荐复杂业务逻辑
Stream 过滤不推荐小数据量时可用
分页查询推荐分页展示
聚合函数 推荐统计、计算
动态 SQL 推荐条件组合
多表查询推荐关联数据查询

最后在BchzdtMapper.xml添加sql查询语句

<!-- 根据编号和日期查询记录 -->
    <select id="findByKsbhAndDate" resultMap="BaseResultMap">
        SELECT
        <include refid="Base_Column_List"/>
        FROM BCHZDT
        WHERE KSBH = #{ksbh}
        AND TRUNC(CREATE_TIME) = TRUNC(#{date})
        <if test="true">
            AND IS_DELETE = 0
        </if>
        ORDER BY CREATE_TIME DESC
    </select>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值