广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBootMybatis配置文件形式详解
  • 181
分享到

SpringBootMybatis配置文件形式详解

SpringBootMybatis配置SpringBootMybatis配置方式 2023-03-23 11:03:07 181人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1. 概述2. 单独配置mybatis-config.xml2.1 配置内容2.2 辅助类2.3 调用操作3. application.yml配置mybatis3.1 配置内容3

开发环境: idea 2022.1.4+ Mybatis

1. 概述

        在之前BiliBili学习SprintBoot时候,按照视频敲代码,SpringBoot集成MyBatis,是单独写了一个mybatis-config.xml文件。配置数据连接以及mapper等信息。后来问了下从事Java得同事,告知mybatis-config.xml文件其实可以写到application.yml。当时也没弄清楚。后来摸索中,也就渐渐明白了。

2. 单独配置mybatis-config.xml

2.1 配置内容

        当时视频学习,也写下学习得总结

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "Http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--configuration核心配置文件-->
<!--顺序 properties->settings->typeAliases->typeHandlers->objectFactory->objectWrapperFactory->reflectorFactory->plugins->environments->databaseIdProvider->mappers-->
<configuration>
    <!--jdbc.properties配置文件-->
    <properties resource="jdbc.properties"></properties>
 
    <!--设置mybatis输出日志 Mybatis默认就是STDOUT_LOGGING-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
 
    <!--  类型别名 默认为类名 指定这个后 mapper的xml文件指定返回值时候 可直接写类名(不区分大小写) 建议直接拷贝类名  -->
    <typeAliases>
        <package name="com.ceaning.crudp.entity"/>
    </typeAliases>
 
    <!-- 环境配置 -->
    <!-- development IDEA默认 开发环境 -->
    <!-- 可以自定义 比如定义test fORMal 看心情 每个sqlSessionFactory实例只能选择一种环境 这个可随时配置 -->
    <!-- test 测试环境 -->
    <!-- formal 正式环境 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="passWord" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 映射器 每一个mapper.xml都需要在Mybatis的核心文件中注册! -->
    <!-- 注册方式1 使用xml文件 <mapper resource="com/ceaning/efmis/mapper/UserMapper.xml"/> -->
    <!-- 注册方式2 使用class文件 <mapper class="com.ceaning.efmis.mapper.UserMapper"/> -->
    <!-- 注册方式3 mapper代理方式 <package name="com.ceaning.efmis.mapper"/> -->
    <!--
        注册方式2(使用class文件)和注册方式3(使用包扫描注册)
        1.接口和他的Mapper配置文件必须同名
        2.接口和他的Mapper配置文件必须在同一个包下
    -->
    <mappers>
        <package name="com.ceaning.crudp.mapper"/>
    </mappers>
</configuration>

        jdbc.properties内容如下:

        单独写jdbc得配置,是担心以后要是部署成WAR形式,修改mybatis-config.xml内容得话,内容太多,防止修改错,就单独搞个jdbc配置。(其实我想多了)

driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://127.0.0.1:1433;databaseName=EFMIS
username=sa
password=123qwe,.

2.2 辅助类

        辅助类得作用在于初始调用类得时候,实现配置加载,并创建SqlSessionFactory,方便后面进行SQL查询。

public class MybatisUtils {
    //SqlSessionFactory 静态单例模式
    private static SqlSessionFactory sqlSessionFactory;
 
    //使用Mybatis第一步 获取SqlSessionFactory对象
    static {
        try{
            String resource="mybatis-config.xml";
            InputStream inputStream= Resources.getResourceAsStream(resource);
            sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);
        } catch (Exception e){
            e.printStackTrace();
        }
    }
 
    //获取SqlSession实例
    //该实例包含了面向数据库执行sql命令所需要的所有方法
    public static SqlSession getSqlSession(){
        return sqlSessionFactory.openSession();
    }
}

2.3 调用操作

        此处我以登录操作为例。这样就可以连接数据库进行操作。

@PostMapping("/user/login")
    public Result<?> login(@RequestBody User user){
        SqlSession sqlSession= null;
        Map<String, Object> map= new HashMap<>();
        try{
            sqlSession= MybatisUtils.getSqlSession();
            UserMapper mapper= sqlSession.getMapper(UserMapper.class);
            user= mapper.login(user);
            if (user!= null){
                //生成token
                Map<String, String> tokenmap= new HashMap<>();
                tokenmap.put("loginname", user.getLoginname());
                tokenmap.put("password", user.getPassword());
                String token= JwtUtils.getToken(tokenmap);
                //返回数据
                map.put("user", user);
                map.put("token", token);
                return Result.ok(map);
            } else {
                return Result.error(CommonConstant.SYS_ERR_CODE, "用户不存在!");
            }
        } catch (Exception e){
            e.printStackTrace();
            return Result.error("异常!"+ e.getMessage());
        } finally {
            if (sqlSession!= null){
                sqlSession.close();
            }
        }
    }

3. application.yml配置mybatis

3.1 配置内容

        多余得内容不用管它。主要是配置数据源spring.datasource。配置数据库连接信息。

 
Server:
  port: 8090
 
spring:
  # quartz定时任务配置
  quartz:
    # 数据库存储方式
    job-store-type: jdbc
    org:
      quartz:
        jobStore:
          class: org.springframework.scheduling.quartz.LocalDataSourceJobStore
  #配置数据源
  datasource:
    url: jdbc:sqlserver://127.0.0.1:1433;SelectMethod=cursor;databaseName=EFMIS
    username: sa
    password: 123qwe,.
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
  #JSON
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  #热部署
  devtools:
    restart:
      enabled: true
      additional-paths: src/main/java
      exclude: static
    private static ConfigurableListableBeanFactory beanFactory;
 
 
    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
        SpringUtils.beanFactory= configurableListableBeanFactory;
    }
 
    public static <T> T getBean(String name) throws BeansException{
        name= lowerCaseInit(name);
        if(containsBean(name)){
            return (T) beanFactory.getBean(name);
        } else{
            return null;
        }
    }
 
    
    public static <T> T getBean(Class<T> cls) throws BeansException{
        T result= (T) beanFactory.getBean(cls);
        return result;
    }
 
    
    public static boolean containsBean(String name){
        return beanFactory.containsBean(name);
    }
 
    
    public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException{
        return beanFactory.isSingleton(name);
    }
 
    public static Class<?> getType(String name) throws NoSuchBeanDefinitionException{
        return beanFactory.getType(name);
    }
 
    public static String[] getAliases(String name) throws NoSuchBeanDefinitionException{
        return beanFactory.getAliases(name);
    }
 
    
    private static String lowerCaseInit(String name){
        if(name.length()>0){
            char c= name.charAt(0);
            if(c>=65 && c<=90){
                int i= c+ 32;
                return ((char)i)+ name.substring(1);
            } else{
                return name;
            }
        } else{
            return null;
        }
    }
}

3.3 调用操作

        此处还是以登录操作为例。同样可以进行数据库连接操作。

@PostMapping("/user/login")
    public Result<?> login(@RequestBody User user){
        Map<String, Object> map= new HashMap<>();
        try{
            UserMapper mapper= SpringUtils.getBean(UserMapper.class);
            user= mapper.login(user);
            if (user!= null){
                //生成token
                Map<String, String> tokenmap= new HashMap<>();
                tokenmap.put("loginname", user.getLoginname());
                tokenmap.put("password", user.getPassword());
                String token= JwtUtils.getToken(tokenmap);
                //返回数据
                map.put("user", user);
                map.put("token", token);
                return Result.ok(map);
            } else {
                return Result.error(CommonConstant.SYS_ERR_CODE, "用户不存在!");
            }
        } catch (Exception e){
            e.printStackTrace();
            return Result.error("异常!"+ e.getMessage());
        } 
    }

4. 结语

        实际项目中单独配置mybatis-config.xml较少。一般都写在application.yml里。

        后面继续学习druid得配置以及操作实现。

到此这篇关于SpringBoot Mybatis 配置文件形式的文章就介绍到这了,更多相关SpringBoot Mybatis 配置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBootMybatis配置文件形式详解

本文链接: https://www.lsjlt.com/news/201022.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBootMybatis配置文件形式详解
    目录1. 概述2. 单独配置mybatis-config.xml2.1 配置内容2.2 辅助类2.3 调用操作3. application.yml配置mybatis3.1 配置内容3...
    99+
    2023-03-23
    SpringBoot Mybatis 配置 SpringBoot Mybatis 配置方式
  • Vue配置文件中的proxy配置方式详解
    1. 这里以axios发请求为例 axios.get("/abc/def"); axios.get("/abc/ghi"); axios.post("/abc/jkm"); axi...
    99+
    2022-11-13
  • redis-配置文件详解
    1.基本配置daemonize no 是否以后台进程启动databases 16 创建database的数量(默认选中的是database 0) save 900 1 #刷新快照到硬盘中,必须满足两者...
    99+
    2022-10-18
  • package.json文件配置详解
    package.json 是npm init命令初始化后,在项目的根目录下自动生成的配置文件,它定义了这个项目的配置信息以及所需要的各种模块,npm install根据这个命令,自动下载所需的模块。pack...
    99+
    2022-06-04
    详解 文件 package
  • redis 配置文件详解
    bind 0.0.0.0                 #绑定redis服务器网卡IP,默认为127.0.0.1,即本地...
    99+
    2022-10-18
  • redis配置文件详解
    位置 find / -name redis.conf units单位 # Redis configuration file example. # # Note that in order to read the configu...
    99+
    2022-01-15
    redis配置文件详解
  • postgresql.conf配置文件详解
    postgresql.conf文件是PostgreSQL数据库系统的主配置文件,它包含了数据库服务器的各种配置选项。下面是postg...
    99+
    2023-09-13
    详解
  • prometheus 配置文件详解
    目录 prometheus 配置文件详解 简介配置文件 原始配置文件内容global字段alerting 字段 alert_relabel_configsalertmanagersrule_fi...
    99+
    2023-09-05
    prometheus 服务器 linux java 运维
  • Redis2.8配置文件中文详解
    add by zhj : 没找到本文的原文。另外,redis配置文件中文翻译 也翻译的不错,可以与本文对照看。两篇文章都是以Redis2.8来介绍的 在Redis中直接启动redis-server服务时, ...
    99+
    2022-06-04
    中文 配置文件 详解
  • 【八】MySQL-配置文件详解
    # 客户端设置,即客户端默认的连接参数 [client]   # 默认连接端口 port = 3306   # 用于本地连接的socket套接字 socket = /usr/local/mysql/data/mysql.sock   # 字...
    99+
    2023-10-26
    mysql 数据库 服务器
  • Maven配置文件pom.xml详解
    什么是POM?POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。在Maven中,当谈到Project的时候,不仅仅是一堆包含代码的文件。一个Proje...
    99+
    2023-05-31
    maven pom mave
  • Nginx配置文件(nginx.conf)详解
    1、配置文件在哪? 想要了解nginx的配置文件,得先知道它在哪吧!可通过以下命令查看:  2、nginx.conf文件的结构 nginx.conf一共由3部分组成:全局块、events块、http块。 2.1全局块 全局块是默认配置文件...
    99+
    2023-09-23
    nginx 运维 服务器
  • redis配置文件中常用配置详解
    此次安装的版本为: 5.0.3 [root@localhost local]# redis-server --version Redis server v=5.0.3 sha=0...
    99+
    2022-11-12
  • 使用springboot配置文件yml中的map形式
    目录springboot配置文件yml的map形式1、yml中的格式2、创建一个类3、引用4、打印SpringBootyaml文件map集合使用yaml文件配置配置文件对应的bean...
    99+
    2022-11-12
  • 详解DockerCompose配置文件参数
    目录1. image2. build3. command4.container_name5.depends_on6.dns7. tmpfs8. entrypoint9.env_fil...
    99+
    2022-11-13
  • SERV-U 的配置文件详解
    SERV-U的目录文件结构说明 Servudaemon.exe serv-u的服务程序,主文件 Servudaemon.ini serv-u的配置文件,记录用户信息,服务器参数 Se...
    99+
    2022-11-21
    SERV-U 配置文件
  • WordPress配置文件wp-config.php详解
    今天安装一个wp主题时候忽然前后台都报错,这就完了,只能去服务器上修改程序或者修改配置了,正好搜索到一个说明比较详细的配置,共享给大家! 数据库信息 WordPress链接数据库需设定以下四个值: 复制代码代码如下:defin...
    99+
    2022-10-20
  • 详解Mybatis核心配置文件
    Mybatis核心配置文件 记录在mybatis核心配置文件中,常用的配置选项: 下边是之前的配置选项: <?xml version="1.0" encoding=...
    99+
    2022-11-12
  • MyBatis全局配置文件详解
    目录MyBatis全局配置文件settings设置typeAliases类型命名存在的问题:@Alias("")environments环境transactionManager事务管...
    99+
    2022-11-12
  • MySQL之my.cnf配置文件图文详解
    目录引言问题1.mysql.server,mysqld,mysqld_safe的区别mysql.servermysql_safe问题2.mysql的三种启动方式:问题3.socket...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作