SpringBoot项目搭建的注意事项(引入Mybatis+数据库连接池Hikari)

一:SpringBoot项目的搭建

搭建正常的SpringBoot项目就好了,项目创建的具体流程可转下面的链接 

CSDN

二:引入Mybatis

1. 首先添加Mybatis的jar包(注意版本)

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.2</version>
        </dependency>

2.在配置文件在配置mybaits相关配置(.yaml格式)

  # datasource数据源配置
  datasource:
    url: jdbc:mysql://localhost:3306/community?characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: zyc12345
  # HikariDataSource数据库连接池配置
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      maximum-pool-size: 15
      minimum-idle: 5
      idle-timeout: 30000
  # mybatis配置
mybatis:
# mybaits映射文件的位置
  mapper-locations: classpath:com/zyc/zcommunity/mapper/xml/*.xml
  type-aliases-package: com.zyc.zcommunity.mapper

3.创建具体的实体类

@Data
public class DiscussPost {
    private Integer id;
    private String userId;
    private String title;
    private String content;
    private Integer type;
    private Integer status;
    private Date createTime;
    private Integer commentCount;
    private Double score;

}

4,创建mapper层

         4.1 mapper包中一般为对应实体的mapper接口(比如User实体 为 UserMapper)

        4.2 mapper包还有一个子包为xml存放的是mapper接口的映射文件(idea一般默认存放在resource文件夹当中)

4. DiscussPostMapper.java 

重点:加入@Mapper注解

package com.zyc.zcommunity.mapper;

import com.zyc.zcommunity.entity.DiscussPost;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;

/**
 * @author: ZhongYC
 * @create: 2023-09-08 10:58
 * @className: com.zyc.zcommunity.mapper.DiscussPostMapper
 * @description:
 */
@Mapper
public interface DiscussPostMapper {
    List<DiscussPost> findDiscussPosts(int userId, int offset, int limit);
}

DiscussPostMapper.xml

注意:namespace中填的值要和mapper接口类的地址一一对应

<?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.zyc.zcommunity.mapper.DiscussPostMapper">
    <sql id="discussPostColumns">
    id,user_id,title,content,type,status,create_time,comment_count,score
    </sql>
    <select id="findDiscussPosts" resultType="com.zyc.zcommunity.entity.DiscussPost">
    select <include refid="discussPostColumns"></include>
    from discuss_post
    <if test="userId != 0">
        user_id = #{userId}
    </if>
    limit #{offset}, #{limit}
    </select>
</mapper>

重点:如果sql的映射文件存放的位置在  src/main/java 的路径下需要在pom文件加入如下配置,开放src/main/java的权限

 <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.yaml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.yaml</include>
                </includes>
            </resource>
        </resources>

后续可以看target文件夹下有没有对应的.xml文件 (idea默认是不会引入外部的xml文件)

在启动类中加上@MapperScan注解扫描@mapper的类

Controller层写一个测试的方法

package com.zyc.zcommunity.controller;

import com.zyc.zcommunity.entity.DiscussPost;
import com.zyc.zcommunity.service.DiscussPostService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * @author: ZhongYC
 * @create: 2023-09-08 10:04
 * @className: com.zyc.zcommunity.controller.HomeController
 * @description:
 */
@Controller
@RequiredArgsConstructor
public class HomeController {
    private final DiscussPostService discussPostService;

    @GetMapping(value = "/index.do")
    @ResponseBody
    public List<DiscussPost> getIndexPage(){
        return discussPostService.findDiscussPosts(0,1,10);
    }
}

启动项目:

正常获取数据!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值