mybatis-plus

文章详细描述了一个Java项目中如何管理依赖,包括MySQL连接配置、Lombok的使用,以及MyBatis-Plus的配置、数据库表的创建和CRUD操作。还展示了Controller、Service和Mapper接口的实现,以及数据实体类的定义。
摘要由CSDN通过智能技术生成

依赖

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- MyBatis-Plus 核心依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

    <build>
        <resources>
            <!-- 扫描src/main/java下所有xx.xml文件 -->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <!--扫描resources下所有资源-->
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
    </build>

#创建表
DROP TABLE IF EXISTS `consult`;
CREATE TABLE `consult`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '消息ID',
	`title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息标题',
  `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息内容',
  `deleted` tinyint(1) NULL DEFAULT 0 COMMENT '逻辑删除 1已删除, 0未删除',
  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`) USING BTREE
  #创建索引
  #INDEX `idx_title`(`title`) UsING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 COLLATE = utf8mb4_general_ci COMMENT = '消息表' ROW_FORMAT = Compact;

#添加字段
ALTER TABLE `consult`
ADD COLUMN `performance` varchar(16) NULL COMMENT '绩效';

配置文件

server:
  port: 8090
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/systemboot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
    username: root
    password: 123456

# MyBatis-plus配置
  #  1.xml文件放在java的mapper下xml文件中,路径要写全,并且pom中要加构建扫描src/main/java:扫描java下的所有文件
  #  mapper-locations: classpath:com/example/demo/demos/web/mapper/xml/*.xml
  #  2.xml文件放在resource的mapper下xml文件中,从resource文件名开始写路径,并且pom中要加构建扫描src/main/resources
  #  扫描resource下的所有文件
mybatis-plus:
  mapper-locations: classpath:/com/example/demo/demos/web/mapper/xml/*.xml
  type-aliases-package: com.example.demo.demos.web.entity

mybatis-plus配置

@Configuration
@ComponentScan(basePackages = {"com.example"})
public class MyBatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //分页插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        //乐观锁插件
//        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
}

controller

@RestController
@RequestMapping("/consult02")
public class ConsultController {

    @Autowired
    private ConsultService consultService;

    @GetMapping("/selectAll02")
    public List<Consult> getAllConsults(){
        return consultService.getAllConsults();
    }

    @GetMapping("/getById02/{id}")
//    @ApiOperation(value = "根据id查询")
    public Object getConsultById(@PathVariable int id) {
        return consultService.getConsultById(id);
    }

    @PostMapping("/save02")
//    @ApiOperation(value = "添加")
    public boolean createConsult(@RequestBody Consult consult) {
        return consultService.createConsult(consult);
    }

    @PostMapping("/update02/{id}")
//    @ApiOperation(value = "更新")
    public boolean updateConsult(@PathVariable Integer id, @RequestBody Consult consult) {
        consult.setId(id);
        return consultService.updateConsult(consult);
    }

    @GetMapping("/delete02/{id}")
//    @ApiOperation(value = "删除")
    public boolean deleteConsult(@PathVariable Integer id) {
        return consultService.deleteConsult(id);
    }

    @GetMapping("/pageList02")
    public Object pageList(@RequestParam(value = "pageNum",required = false, defaultValue = "1") Integer pageNum,
                           @RequestParam(value = "pageSize",required = false, defaultValue = "3") Integer pageSize,
                           @RequestBody Consult consult){
        return consultService.selectPage(pageNum,pageSize,consult);
    }
}

service

public interface ConsultService extends IService<Consult> {
    Object getConsultById(int id);
    List<Consult> getAllConsults();
    boolean createConsult(Consult consult);
    boolean updateConsult(Consult consult);
    boolean deleteConsult(Integer id);
    Page<Consult> selectPage(int pageNum, int pageSize, Consult consult);
}
@Service
public class ConsultServiceImpl extends ServiceImpl<ConsultMapper,Consult> implements ConsultService {

    @Autowired
    private ConsultMapper consultMapper;

    @Override
    public Object getConsultById(int id) {
        QueryWrapper<Consult> wrapper = new QueryWrapper<>();
        wrapper.eq("deleted",0)
                .eq("id",id);
        Consult consult=consultMapper.selectOne(wrapper);
        return consult;
    }

    @Override
    public List<Consult> getAllConsults() {
        return consultMapper.selectList(new QueryWrapper<Consult>().eq("deleted",0));
    }

    @Override
    public boolean createConsult(Consult consult) {
        consult.setCreateTime(new Date());
        consult.setUpdateTime(new Date());
        boolean result = save(consult);
        return result;
    }

    @Override
    public boolean updateConsult(Consult consult) {
        consult.setUpdateTime(new Date());
        int result = consultMapper.updateById(consult);
        return result>0;
    }

    @Override
    public boolean deleteConsult(Integer id) {
        int result = consultMapper.deleteById(id);
        return result>0;
    }

    @Override
    public Page<Consult> selectPage(int pageNum, int pageSize, Consult consult) {
        QueryWrapper<Consult> wrapper = new QueryWrapper<>();
        if (ObjectUtils.isNotEmpty(consult)){
            wrapper.and(i->i.like("title",consult.getTitle())
                    .or().eq("content",consult.getContent())
                    .or().eq("update_time",consult.getUpdateTime()));
        }
        wrapper.eq("deleted",0).orderByDesc("create_time");
        Page<Consult> page = new Page<>(pageNum,pageSize);
        Page<Consult> pageList = (Page<Consult>) consultMapper.selectPage(page,wrapper);
        return pageList;
    }
}

mapper

@Mapper
public interface ConsultMapper extends BaseMapper<Consult> {
}
<?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.example.demo.demos.web.mapper.ConsultMapper">

</mapper>

entity

@Data
public class Consult {
    //使用mybatis-plus自带的新增
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private String title;
    private String content;
    @TableLogic(value = "0",delval = "1")
    private Integer deleted;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //返回的日期类型字段数据解析成字符串 xml中查询返回字段create_time更名createTime
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Date createTime;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Date updateTime;
}

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值