【SpringBoot】手把手教你 如何集成 Mybatis 连接数据库Mysql~

本文详细描述了如何在SpringBoot项目中集成MyBatis,包括Maven依赖管理、数据库连接配置、application.yml文件设置、以及业务层的三层结构设计,如Controller、Service和Mapper的实现。

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


theme: smartblue

引言

工作时候总是没时间总结一下,但是每次新建项目的时候都会去网上找一些对照笔记去参考,最近再弄一个开源项目,需要搭建一下环境和配置,不如自己把搭建SpringBoot的步骤记录一下。

环境

  • JDK 1.8
  • MyBatis 2.2.0
  • SpringBoot 2.5.8

步骤

Maven引入

<!-- MyBatis -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>

<!-- Mysql驱动包 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

appliation.yml

# 数据源配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://172.17.0.207:3306/yx-regiserve?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
    username: yx-regiserve
    password: aX3W2ELGZfdKJEJc

# MyBatis配置
mybatis:
  # 搜索指定包别名
  typeAliasesPackage: com.yanxi.yxregiserve.web.domin.**
  # 配置mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocation: classpath*:mapper/**/*Mapper.xml
  # 加载全局的配置文件
  configLocation: classpath:mybatis/mybatis-config.xml
  
# MyBatis默认配置
#mybatis:
#  # 扫描的 mapper 的路径
#  mapper-locations: classpath*:mapper/**/*Mapper.xml
#  # 扫描实体类路径
#  type-aliases-package: com.yanxi.yxregiserve.web.domin.**
#  # 为了看到SQL语句配置的日志输出信息 方便调试
#  configuration:
#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

MyBatis.config

直接将mapper的扫描配置,和装载SqlSessionFactory在MyBatis.config。这样配置纯属个人喜好,可以根据自己的实际项目,自定义配置。

如果要跟着我配置,这一段可以不看。 如果要选择默认的话,需要更改appliation.yml中的myBatis的配置(改为注释掉的配置),然后就不需要MyBatis.config。需要在mapper接口直接配置注解 @mapper 即可,或者 在启动main方法上边配置 @MapperScan("com.yanxi.**.mapper")

@Configuration
@MapperScan("com.yanxi.**.mapper")
public class MyBatisConfig {

    @Autowired
    private DataSource dataSource;

    @Autowired
    private Environment env;

    /**
     *
     * @return
     * @throws Exception
     */
    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {

        String typeAliasesPackage = env.getProperty("mybatis.typeAliasesPackage");
        String mapperLocation = env.getProperty("mybatis.mapperLocation");
        String configLocation = env.getProperty("mybatis.configLocation");

        final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        sessionFactory.setTypeAliasesPackage(typeAliasesPackage);

        //可以引入多个,但是本项目只需要引入一个路径。
        List<Resource> resources = Arrays.asList(new PathMatchingResourcePatternResolver().getResources(mapperLocation));
        sessionFactory.setMapperLocations(resources.toArray(new Resource[resources.size()]));

        sessionFactory.setConfigLocation(new DefaultResourceLoader().getResource(configLocation));
        return sessionFactory.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

JAVA 业务三层架构

image.png

Conteroller

@RestController
@RequestMapping(value = "/configDatas")
public class ConfigDataController extends BaseController {

    @Autowired
    private ConfigDataService configDataService;

    /**
     * 查询配置列表
     */
    @GetMapping("/list")
    public AjaxResult list(ConfigData configData)
    {
        List<ConfigData> list = configDataService.selectTList(configData);
        return AjaxResult.success(list);
    }

}

Service

接口类

public interface ConfigDataService extends BaseService<ConfigData> {
    /**
     * id查询
     *
     * @param id 自增id
     * @return
     */
    public T selectTById(Long id);
}

实现类

@Service
public class ConfigDataServiceImpl {

    @Autowired
    public ConfigDataMapper configDataMapper;

    @Override
    public ConfigData selectTById(Long id) {
        return configDataMapper.selectTById(id);
    }
}

Mapper

如果是默认配置,没有加扫描注解@MapperScan("com.yanxi.**.mapper")可以加 @Mapper

//@Mapper
public interface ConfigDataMapper {
    /**
     * id查询
     *
     * @param id 自增id
     * @return
     */
    public T selectTById(Long id);
}

resource目录下配置 xml文件

注意:在resource目录下配置的文件,路径一定要个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.yanxi.yxregiserve.web.mapper.system.ConfigDataMapper">

    <resultMap id="ConfigDataResult" type="com.yanxi.yxregiserve.web.domin.system.ConfigData">
        <result column="id" property="id"/>
        <result column="key" property="key"/>
        <result column="value" property="value"/>
        <result column="tag" property="tag"/>
        <result column="remark" property="remark"/>
        <result column="num" property="num"/>
    </resultMap>

    <sql id="selectConfigVo">
        select id, `key`, `value` , `tag` , remark , num from config_data
    </sql>

    <select id="selectTById" parameterType="Long" resultMap="ConfigDataResult">
        <include refid="selectConfigVo"/>
        where id = #{id}
    </select>
</mapper>

完活

OK咱们的搭建就完成了,非常的简单啊!

总结

一定要多思考,如果人永远待在舒适圈的话,人永远不会成长。共勉。

觉得作者写的不错的,值得你们借鉴的话,就请点一个免费的赞吧!这个对我来说真的很重要。૮(˶ᵔ ᵕ ᵔ˶)ა

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值