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 配置内容

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

nbsp;configuration        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"        "http://mybatis.org/dtd/mybatis-3-config.dtd">                                                                                                                                                                                                           <!-- 注册方式1 使用xml文件  -->    <!-- 注册方式2 使用class文件  -->    <!-- 注册方式3 mapper代理方式  -->                    

登录后复制

        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 map= new HashMap();        try{            sqlSession= MybatisUtils.getSqlSession();            UserMapper mapper= sqlSession.getMapper(UserMapper.class);            user= mapper.login(user);            if (user!= null){                //生成token                Map 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/**  jta:    atomikos:      properties:        recovery:          forget-orphaned-log-entries-delay:mybatis:  configuration:    #开启驼峰映射    map-underscore-to-camel-case: true    #开启缓存    cache-enabled: true  #加载mapper.xml文件  mapper-locations: classpath:com/ceaning/crudp/mapper/*.xml  #别名扫描  type-aliases-package: com.ceaning.crudp.entitylogging:  config: classpath:logback-spring.xml

登录后复制

3.2 辅助类

@Componentpublic class SpringUtils implements BeanFactoryPostProcessor {    /**     * Spring应用上下文环境     */    private static ConfigurableListableBeanFactory beanFactory;      @Override    public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {        SpringUtils.beanFactory= configurableListableBeanFactory;    }     public static  T getBean(String name) throws BeansException{        name= lowerCaseInit(name);        if(containsBean(name)){            return (T) beanFactory.getBean(name);        } else{            return null;        }    }     /**     * 获取     * @param cls     * @return     * @param      * @throws BeansException     */    public static  T getBean(Class cls) throws BeansException{        T result= (T) beanFactory.getBean(cls);        return result;    }     /**     * 判断 BeanFactory是否包含bean对象     * @param name     * @return     */    public static boolean containsBean(String name){        return beanFactory.containsBean(name);    }     /**     * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。     * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)     * @param name     * @return     * @throws NoSuchBeanDefinitionException     */    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);    }     /**     * 首字母小写     * @param name     * @return     */    private static String lowerCaseInit(String name){        if(name.length()>0){            char c= name.charAt(0);            if(c>=65 && c

3.3 调用操作

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

@PostMapping("/user/login")    public Result> login(@RequestBody User user){        Map map= new HashMap();        try{            UserMapper mapper= SpringUtils.getBean(UserMapper.class);            user= mapper.login(user);            if (user!= null){                //生成token                Map 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怎么配置文件的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2626880.html

(0)
上一篇 2025年3月7日 00:58:23
下一篇 2025年3月3日 19:33:12

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论