iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >SpringBoot Mybatis怎么配置文件
  • 280
分享到

SpringBoot Mybatis怎么配置文件

2023-07-05 15:07:47 280人浏览 薄情痞子
摘要

这篇文章主要介绍“SpringBoot mybatis怎么配置文件”,在日常操作中,相信很多人在springBoot Mybatis怎么配置文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答

这篇文章主要介绍“SpringBoot mybatis怎么配置文件”,在日常操作中,相信很多人在springBoot Mybatis怎么配置文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot Mybatis怎么配置文件”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    开发环境: 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.SQLServerDriverurl=jdbc:sqlserver://127.0.0.1:1433;databaseName=EFMISusername=sapassword=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());        }     }

    到此,关于“SpringBoot Mybatis怎么配置文件”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: SpringBoot Mybatis怎么配置文件

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

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

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

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

    下载Word文档
    猜你喜欢
    • MySQL怎么更新字段长度
      要更新MySQL表中的字段长度,可以使用ALTER TABLE语句。以下是更新字段长度的示例: ALTER TABLE table_...
      99+
      2024-05-14
      mysql
    • sql如何修改表字段长度
      要修改表字段的长度,可以使用ALTER TABLE语句,然后使用MODIFY COLUMN来修改字段的长度。以下是一个示例: ALT...
      99+
      2024-05-14
      sql
    • mysql数据量太大如何解决
      有几种方法可以解决MySQL数据量过大的问题: 数据库分区:将数据库表按照某种规则进行分区,分成多个小表,可以提高查询速度和管理...
      99+
      2024-05-14
      mysql
    • MySQL单表数据量过大如何解决
      在MySQL中,当单表的数据量过大时,可以采取以下几种方法来解决问题: 使用索引:在表的字段上创建适当的索引,可以提高查询效率,...
      99+
      2024-05-14
      mysql
    • mysql导出数据量过大如何解决
      当导出的数据量过大时,可以尝试以下方法来解决问题: 使用数据库工具:使用数据库管理工具如Navicat或MySQL Workbe...
      99+
      2024-05-14
      mysql
    • mysql中log_bin的作用是什么
      在MySQL中,log_bin是二进制日志文件的名称,用于记录所有对数据库进行更改的操作,如插入、更新、删除等。这些二进制日志文件可...
      99+
      2024-05-14
      mysql
    • mysql中log_bin的特点有哪些
      log_bin是MySQL的二进制日志文件,用于记录所有对数据库的修改操作,包括插入、更新、删除等。 log_bin文件是M...
      99+
      2024-05-14
      mysql
    • mysql rpm包安装的方法是什么
      要在Linux系统上安装MySQL RPM包,可以按照以下步骤操作: 下载MySQL的RPM包:你可以从MySQL官方网站下载适...
      99+
      2024-05-14
      mysql
    • mysql rpm包安装后怎么使用
      安装MySQL RPM包后,您可以通过以下步骤来使用MySQL: 启动MySQL服务:使用以下命令来启动MySQL服务: sud...
      99+
      2024-05-14
      mysql
    • lxml中怎么处理XML命名空间默认值
      在lxml中处理XML命名空间的默认值可以通过使用xpath()方法和register_namespace()方法来实现。...
      99+
      2024-05-14
      lxml
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作