当前位置:   article > 正文

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

springboot集成mysql的数据源

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

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);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

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);
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

Service

接口类

public interface ConfigDataService extends BaseService<ConfigData> {
    /**
     * id查询
     *
     * @param id 自增id
     * @return
     */
    public T selectTById(Long id);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

实现类

@Service
public class ConfigDataServiceImpl {

    @Autowired
    public ConfigDataMapper configDataMapper;

    @Override
    public ConfigData selectTById(Long id) {
        return configDataMapper.selectTById(id);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Mapper

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

//@Mapper
public interface ConfigDataMapper {
    /**
     * id查询
     *
     * @param id 自增id
     * @return
     */
    public T selectTById(Long id);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

完活

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

总结

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/498107
推荐阅读
相关标签
  

闽ICP备14008679号