mybatis-config.xml-配置文件详解

news2024/9/27 15:29:59

文章目录

  • mybatis-config.xml-配置文件详解
    • 说明
    • 文档地址:
    • 配置文件属性解析
      • properties 属性
        • 应用实例
      • settings 全局参数定义
        • 应用实例
      • typeAliases 别名处理器
        • 举例说明
      • typeHandlers 类型处理器
      • environments 环境
        • environment 属性
        • 应用实例
      • mappers配置

mybatis-config.xml-配置文件详解

说明

mybatis 的核心配置文件(mybatis-config.xml),比如配置jdbc 连接信息,注册mapper等等,我们需要对这个配置文件有详细的了解。

文档地址:

官方文档: https://mybatis.org/mybatis-3/zh/configuration.html

配置文件属性解析

properties 属性

通过该属性,可以指定一个外部的jdbc.properties 文件,引入我们的jdbc 连接信息。

应用实例

  1. 创建NLC_MyBatis\mybatis_quickstart\src\main\resources\jdbc.properties
jdbc.user=root
jdbc.password=123456
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?userSSL=true&userUnicode=true&char
acterEncoding=UTF-8
jdbc.driver=com.mysql.jdbc.Driver
  1. 修改mybatis-confing.xml

    <?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>
    
        <!--引入外部的jdbc.properties-->
        <properties resource="jdbc.properties"/>
        
     <environments default="development">
            <environment id="development">
                <!--配置事务管理器-->
                <transactionManager type="JDBC"/>
                <!--配置数据源
                    1. 我们使用外部的properties文件来设置相关的值
                    2. 这个属性文件,需要统一放在 resources目录/类加载路径
                -->
                <dataSource type="POOLED">
                    <!--配置驱动-->
                    <property name="driver" value="${jdbc.driver}"/>
                    <!--从外部文件动态使用-->
                    <!--配置连接mysql-url
                    解读:
                    1. jdbc:mysql 协议
                    2. 127.0.0.1:3306 : 指定连接mysql的ip+port
                    3. mybatis: 连接的DB
                    4. useSSL=true 表示使用安全连接
                    5. &amp; 表示 & 防止解析错误
                    6. useUnicode=true : 使用unicode 作用是防止编码错误
                    7. characterEncoding=UTF-8 指定使用utf-8, 防止中文乱码
                    -->
                    <property name="url" value="${jdbc.url}"/>
                    <property name="username" value="${jdbc.user}"/>
                    <property name="password" value="${jdbc.pwd}"/>
                </dataSource>
            </environment>
        </environments>
    
    1. 修改父项目的pom.xml(如果已经配置了*.properties 就不用再配置) 并完成测试

settings 全局参数定义

  1. 感兴趣的可以看手册
  2. settings 列表,通常使用默认

应用实例

 <!--配置MyBatis自带的日志输出-查看原生的sql-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

typeAliases 别名处理器

  1. 别名是为Java 类型命名一个短名字。它只和XML 配置有关,用来减少类名重复的部分

  2. 如果指定了别名,我们的MappperXxxx.xml 文件就可以做相应的简化处理

  3. 注意指定别名后,还是可以使用全名的

举例说明

  1. 修改NLC_MyBatis\mybatis_quickstart\src\main\resources\mybatis-config.xml
 <!--配置别名-->
    <typeAliases>
        <!-- 为某个mapper 指定一个别名, 下面可以在XxxxxMapper.xml 做相应简化处理-->
        <!--<typeAlias type="com.nlc.entity.Monster" alias="Monster"/>-->

        <!--
            如果一个包下有很多的类,我们可以直接引入包,这样
            该包下面的所有类名,可以直接使用
        -->
        <package name="com.nlc.entity"/>
    </typeAliases>
  1. 修改MonsterMapper.xml 并完成测试
<!--没有在mybatis-config.xml 指定typealiases 时,需要给Monster 指定全类名
<insert id="addMonster" parameterType="com.nlc.entity.Monster"-->
<!-- useGeneratedKeys="true" keyProperty="id"-->

<insert id="addMonster" parameterType="Monster" useGeneratedKeys="true" keyProperty="id">
 <!--useGenerated Keys是一个在数据库操作中常用的选项或属性。它用于指示数据库返回生成的主键值,
	 keyProperty 用来定义和操作对象的主键。
-->
    INSERT INTO monster (age,birthday,email,gender,name,salary)
    VALUES(#{age},#{birthday},#{email},#{gender},#{name},#{salary})
</insert>

typeHandlers 类型处理器

  1. 用于java 类型和jdbc 类型映射
  2. Mybatis 的映射基本已经满足,不太需要重新定义
  3. 这个我们使用默认即可,也就是mybatis 会自动的将java 和jdbc 类型进行转换.
  4. java 类型和jdbc 类型映射关系一览[ 手册]
    https://mybatis.org/mybatis-3/zh/configuration.html#typeHandlers

environments 环境

1、MyBatis 可以配置多种环境,比如开发、测试和生成环境需要有不同的配置

2、每种环境使用一个 environment 标签进行配置并指定唯一标识符

3、可以通过 environment 标签中的 default 属性指定一个环境的标识符来快速的切换环境

environment 属性

environments:指定具体环境,mybatis 可以配置多种环境,default 指定使用某种环境,可以达到快速切换环境。

environment:配置一个具体的环境信息,id属性代表当前环境的唯一标识,

必须有下面两个标签:

​ transactionManager:事务管理器

​ dataSource:数据源

应用实例

<environments default="development">
        <environment id="development">
            <!--配置事务管理器-->
            <transactionManager type="JDBC"/>
            <!--配置数据源
           解读
            1. 我们使用外部的properties文件来设置相关的值
            2. 这个属性文件,需要统一的放在 resources目录/类加载路径
            -->
            <dataSource type="POOLED">
                <!--配置驱动-->
                <property name="driver" value="${jdbc.driver}"/>
                <!--配置连接mysql-url
                解读:
                1. jdbc:mysql 协议
                2. 127.0.0.1:3306 : 指定连接mysql的ip+port
                3. mybatis: 连接的DB
                4. useSSL=true 表示使用安全连接
                5. &amp; 表示 & 防止解析错误
                6. useUnicode=true : 使用unicode 作用是防止编码错误
                7. characterEncoding=UTF-8 指定使用utf-8, 防止中文乱码
                8.温馨提示:不要背,直接使用即可
                -->
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.user}"/>
                <property name="password" value="${jdbc.pwd}"/>
            </dataSource>
        </environment>
</environments>

mappers配置

  1. resource 注册Mapper 文件: XXXMapper.xml 文件(常用)
<mapper resource="com/nlc/mapper/MonsterMapper.xml"/>
        <!--解读
           1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml
           2. 但是需要在mybatis-config.xml注册/引入含注解的类
           3. 如果没有引入,不能使用
        -->
  1. class:接口注解实现(使用过)
 <!--解读
           1. 如果是通过注解的方式,可不再使用 MonsterMapper.xml
           2. 但是需要在mybatis-config.xml注册/引入含注解的类
           3. 如果没有引入,不能使用
        -->
      <mapper class="com.nlc.mapper.MonsterAnnotation"/>
  1. url:外部路径,使用很少,不推荐,

    <mapper url="file:///D:\yy\kk\yy\MOnsterMapper.xml" />
    
  2. package 方式注册: 并测试

<!--
1. 当一个包下有很多的Mapper.xml 文件和基于注解实现的接口时,
为了方便,我们可以以包方式进行注册
2. 将下面的所有xml 文件和注解接口都进行注册
-->
<package name="com.nlc.mapper"/>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/809211.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue除了子组件抛出的额外参数,父组件如何传递额外参数

以下为一个简单的demo,只为记录一下 很多时候如果我们多个地方使用同一函数时,往往就需要进行判断了,但是组件库返回的函数携带的参数没办法让我们做多余的判断 这时就需要传递多余的参数了 方法一 使用箭头函数 <template><div><el-switchv-model"value&…

2023年中秋节国庆节是几月几号开始休假国庆中秋双节放假几天?

2023年中秋节国庆节是几月几号开始休假国庆中秋双节放假几天&#xff1f; 2023年中秋节与国庆节双节相遇一起放假长大8天; 2023年中秋节与国庆节放假时间是从2023年9月29日开始至10月6日共计8天&#xff0c;10月7日、10月8日补班&#xff1b; 2023年中秋节怎么购买月饼省钱又…

Jenkins配置自动化构建的几个问题

在创建构建任务时&#xff0c;填写git远程仓库地址时&#xff0c;出现以下报错 解决此报错先排查一下linux机器上的git版本 git --version 如果git 版本过低&#xff0c;可能会导致拉取失败&#xff0c;此时需要下载更高的git版本。 参考 Git安装 第二个解决办法报错信息中…

Ansible的脚本 --- playbook 剧本

文章目录 一、playbook剧本的组成创建剧本运行playbook二、定义、引用变量三、指定远程主机sudo切换用户四、when条件判断五、迭代Templates 模块tags 模块 一、playbook剧本的组成 playbooks 本身由以下各部分组成 &#xff08;1&#xff09;Tasks&#xff1a;任务&#xff0…

SpringCloudAlibaba之整合openFeign

一.openFeign的入门使用&#xff08;4步&#xff09; 1.引入openFeign的依赖包&#xff0c;记得父项目中要加上SpringCloud依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactI…

VSCode新手快速下载、安装、使用

目录 下载 安装 1、许可协议 2、安装位置 3、开始菜单文件夹 4、附加任务 5、确认安装 6、完成 使用 1、汉化&#xff08;设置中文界面&#xff09; 2、设置 下载 进入VSCode官方页面&#xff0c;选择自己系统对应的下载链接VSCode默认提供的User Installer版本。但…

【解决】el-tree报Cannot read property ‘getCheckedKeys‘ of undefined

如果你报错 Cannot read property getCheckedKeys of undefined 或者 Cannot read property getCheckedNodes of undefined 只要在你的在<el-tree>上加个这个&#xff0c;就可以了 ref"tree"

某圆形变电站三维建模模型-glb格式-三维漫游-三维可视化-三维模拟巡检

资源介绍 某个圆形变电站的三维建模模型&#xff0c;glb格式&#xff0c;适用于three.js开发测试&#xff0c;可用来做一些三维室内漫游测试、室内导航测试和三维模拟巡检测试 资源下载地址

联想拯救者笔记本切换独显直连游戏体验翻倍、火力全开“嗨”起来

最早的游戏本是由独显负责图形运算&#xff0c;然后直接向屏幕输出所有画面的。但独显负责所有工作&#xff0c;无时无刻都在耗电&#xff1b;撇开游戏模式下高负载的功耗不谈&#xff0c;即便在省电模式下功耗也比核显高得多。 英伟达发布的Optimus混合输出技术&#xff0c;在…

马哈鱼 v.sqlflow.cn 上线试用

马哈鱼数据血缘工具从2023年8月开始开通国内云版本的服务&#xff0c;相比国外版本&#xff0c;访问速度有很大的提升&#xff0c;访问域名为https://v.sqlflow.cn 2023年8月和9月注册的用户可免费获得价值 3000 元的一年高级帐户&#xff0c;可以使用马哈鱼数据血缘工具全部付…

Caffeine本地缓存技术

说明&#xff1a;Caffeine是本地缓存方案&#xff0c;在所有本地缓存中命中率最佳&#xff0c;参考下图&#xff08;引自http://t.csdn.cn/oiQlH&#xff09;&#xff0c;本文介绍Caffeine在SpringBoot项目中的应用。 使用 例如现在有两个接口&#xff0c;一个查询所有用户&am…

Spring 6【数据校验Validation、JSR 303 和 Hibernate 实现】(十三)-全面详解(学习总结---从入门到深化)

目录 数据校验Validation 2.JSR 303 和 Hibernate 实现 数据校验Validation 1.数据校验介绍 数据校验分为客户端数据校验和服务端数据校验。都是为了保证数据完整性的。 客户端数据校验直接使用客户端脚本校验即可。例如在B/S模型项目中&#xff0c;可以选择使用JavaScript…

Flowable中间事件-中间信号捕获事件

定义 信号中间事件分为 Catching 事件和 Throwing 事件&#xff0c;即信号中间捕获事件&#xff08;Signal Intermediate Catch Event&#xff09;和信号中间抛出事件&#xff08;Signal Intermediate Throwing Event&#xff09;。 当流程执行到信号中间捕获事件时就会中断在…

ESP32(MicroPython) 四足机器人(一)

最近决定研究一下四足机器人&#xff0c;但市面上的产品&#xff0c;要么性价比低&#xff0c;要么性能达不到要求。本人就另外买了零件&#xff0c;安装到之前的一个麦克纳姆轮底盘的底板上。&#xff08;轮子作为装饰&#xff0c;使用铜柱固定&#xff09; 舵机使用MG996R&a…

Stability AI推出Stable Diffusion XL 1.0,文本到图像模型

Stability AI宣布推出Stable Diffusion XL 1.0&#xff0c;这是一个文本到图像的模型&#xff0c;该公司将其描述为迄今为止“最先进的”版本。 Stability AI表示&#xff0c;SDXL 1.0能生成更加鲜明准确的色彩&#xff0c;在对比度、光线和阴影方面做了增强&#xff0c;可生成…

在 Amazon EMR 上构建实时数据湖

前言 当公司业务发展遇到瓶颈时&#xff0c;业务分析师以及决策者们总会希望通过交叉分析大量的业务数据和用户行为数据&#xff0c;以解答“为什么利润会下滑&#xff1f;”“为什么库存周转变慢了&#xff1f;”等问题&#xff0c;最终整点“干货”出来从而促进业务发展。 …

一、Postfix[安装与配置、smtp认证、Python发送邮件以及防垃圾邮件方法、使用腾讯云邮件服务]

Debian 11 一、安装 apt install postfix 二、配置 1.dns配置 解释&#xff1a;搭建真实的邮件服务器需要在DNS提供商那里配置下面的dns 配置A记录mail.www.com-1.x.x.x配置MX记录www.com-mail.www.com 解释&#xff1a;按照上面的配置通常邮件格式就是adminwww.com其通过…

2023 年还推荐报计算机专业吗?

计算机科学是一个很好的专业&#xff0c;因为它由各种课程组成&#xff0c;为学生在成熟和新兴专业就业做好准备。以下是一些通常属于计算机科学专业的课程&#xff1a; 基本编程介绍了用于构建和维护数字架构和基础设施的编程语言和标准。 微积分为制定高级计算和设计概念提供…

使用vim-cmd工具给ESXi虚机定期打快照

VMware虚拟化 - 建设篇 第四章 使用vim-cmd工具给ESXi虚机定期打快照 VMware虚拟化 - 建设篇系列文章回顾使用vim-cmd工具给ESXi虚机定期打快照前言前提条件ESXi新增执行快照备份的sh脚本ESXi添加crond任务并使其生效ESXi指定部分虚拟机不执行定期快照(附加)虚拟机自定义属性…

【数据分享】1999—2021年地级市学校数、教师数和学生数(Shp/Excel格式)

在之前的文章中&#xff0c;我们分享过基于2000-2022年《中国城市统计年鉴》整理的1999-2021年地级市的人口相关数据、各类用地面积数据、污染物排放和环境治理相关数据、房地产投资情况和商品房销售面积、社会消费品零售总额和年末金融机构存贷款余额、地方一般公共预算收支状…