【MyBatis】全局配置文件—mybatis.xml 创建xml模板

文章目录

      • 模板文件
      • 配置元素
        • typeAliases
        • settings

模板文件

创建模板

按照顺序打开【File】–>【settings】–>【Editor】–>【File and Code Templates】(或直接搜索)

在这里插入图片描述

<?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>

</configuration>

配置元素

<configuration> 元素是 MyBatis 框架的核心配置元素,包含了MyBatis运行时的所有配置信息。

<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, reflectorFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>

MyBatis 配置文件中可能包含的各种子元素及其顺序

  • <properties>: 用于引入外部属性文件,可以定义一些变量供整个配置文件使用。
  • <settings>: 配置MyBatis的行为,比如开启或关闭缓存、设置日志实现等。
  • <typeAliases>: 为Java类型设置别名,可以在映射文件中使用更短的名字来代替全限定类名。
  • <typeHandlers>: 定义如何将预处理语句中的参数转换为JDBC可识别的类型,以及如何从结果集转换回Java类型。
  • <objectFactory>: 当MyBatis需要创建一个新的对象时,会使用到这个工厂类。可以自定义对象的创建方式。
  • <objectWrapperFactory>: 自定义MyBatis如何包装返回的对象。
  • <reflectorFactory>: 可以自定义反射器工厂,影响MyBatis如何通过反射访问对象属性。
  • <plugins>: 插件元素,用于扩展MyBatis的功能,如分页插件等。
  • <environments>: 定义环境配置,包括事务管理和数据源配置,支持配置多种环境。
  • <databaseIdProvider>: 提供数据库厂商ID,可以用来根据不同的数据库厂商执行不同的SQL语句。
  • <mappers>: 映射文件的注册,告诉MyBatis去哪里找映射文件。
typeAliases
<configuration>
    <!-- 简化包名 -->
    <typeAliases>
        <package name="com.hz.pojo"/>
    </typeAliases>
    <!-- 其他配置项 -->
</configuration>

使用 <package> 标签时,MyBatis 会自动为指定包下的所有类生成别名。别名默认为类名(不包括包名),并且首字母小写。例:

  • com.hz.pojo.User 的别名为 user
  • com.hz.pojo.Order 的别名为 order

若需要为某个类指定一个特定的别名,可以使用 <typeAlias> 标签:

<typeAliases>
    <package name="com.hz.pojo"/>
    <typeAlias type="com.hz.pojo.Bill" alias="myBill"/>
</typeAliases>

设置后,在SQL映射文件中就可以直接使用这些别名,而不需要写完整的类路径

<mapper namespace="com.hz.dao.BillDao">
    <select id="findBillById" parameterType="Long" resultType="bill">
        select id,billCode,productName,productDesc
        from smbms_bill a where id = #{id}
    </select>
</mapper>
settings
<settings>
    <!-- 配置 MyBatis 的日志实现 -->
    <setting name="logImpl" value="LOG4J"/>
</settings>

MyBatis支持多种日志实现,包括但不限于:SLF4JLOG4JCOMMONS_LOGGINGSTDOUT_LOGGINGNO_LOGGING。其中,STDOUT_LOGGING 将日志直接输出到标准输出流(通常是控制台)。

示例:

<?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文件-->
    <properties resource="jdbc.properties"></properties>
    <settings>
        <!-- value="STDOUT_LOGGING" 配置打印SQL语句 -->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <!--简化包名-->
    <typeAliases>
        <package name="com.hz.pojo"/>
    </typeAliases>
    <!--创建数据源 默认加载cs-->
    <environments default="development">
        <environment id="development">
            <!--采用 JDBC方式加载事务-->
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--扫描mapper文件-->
    <mappers>
        <mapper resource="mappers/UserMapper.xml"/>
        <mapper resource="mappers/ProviderMapper.xml"/>
    </mappers>

</configuration>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uni-app 发布媒介功能(自由选择媒介类型的内容) 设计

1.首先明确需求 我想做一个可以选择媒介的内容&#xff0c;来进行发布媒介的功能 &#xff08;媒介包含&#xff1a;图片、文本、视频&#xff09; 2.原型设计 发布-编辑界面 通过点击下方的加号&#xff0c;可以自由选择添加的媒介类型 但是因为预览中无法看到视频的效果&…

【Go】-go中的锁机制

目录 一、锁的基础知识 1. 互斥量/互斥锁 2. CAS&#xff08;compare and swap&#xff09; 3. 自旋锁 4. 读写锁 5. 乐观锁 & 悲观锁 6. 死锁 二、go中锁机制 1. Mutex-互斥锁 2. RWMutex-读写锁 2.1 RWMutex流程概览 2.2 写锁饥饿问题 2.3. golang的读写锁源…

Python 使用 Selenuim进行自动化点击入门,谷歌驱动,以百度为例

一、首先要下载谷歌驱动 1.&#xff08;打开谷歌浏览器 - 设置 - 关于谷歌&#xff0c;查看谷歌浏览器版本&#xff0c;否则不对应无法调用&#xff0c;会提示&#xff1a;selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This versio…

RCVS:A Unifed Registration and FusionFramework for Video Streams 译文

摘要:红外与可见光的跨模态配准与融合可以生成更全面的目标和场景信息表示。以前的框架主要关注于解决模态差异以及保留不同模态信息对不同静态图像对之间配准和融合任务性能的影响。然而&#xff0c;这些框架忽略了在现实世界设备上的实际部署&#xff0c;特别是在视频流的背景…

JDBC编程---Java

目录 一、数据库编程的前置 二、Java的数据库编程----JDBC 1.概念 2.JDBC编程的优点 三.导入MySQL驱动包 四、JDBC编程的实战 1.创造数据源&#xff0c;并设置数据库所在的位置&#xff0c;三条固定写法 2.建立和数据库服务器之间的连接&#xff0c;连接好了后&#xff…

Python 抓取笑话内容并存入 CSV

在互联网上&#xff0c;有许多有趣的内容等待我们去挖掘和收集。今天&#xff0c;我们就来深入了解一段 Python 代码&#xff0c;它能够帮助我们从指定网站抓取笑话内容&#xff0c;并将其整理保存为 CSV 文件&#xff0c;方便后续查看和分析。 结果展示&#xff08;文末附完整…

Redis-09 SpringBoot集成Redis

Jedis 和 lettuce 基本已经过时 集成RedisTemplate 单机 1.建 Modul 2.改pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instanc…

Linux:自定义Shell

本文旨在通过自己完成一个简单的Shell来帮助理解命令行Shell这个程序。 目录 一、输出“提示” 二、获取输入 三、切割字符串 四、执行指令 1.子进程替换 2.内建指令 一、输出“提示” 这个项目基于虚拟机Ubuntu22.04.5实现。 打开终端界面如图所示。 其中。 之前&#x…

夜天之书 #104 开源软件有断供的风险吗?

近期&#xff0c;Linux 上游因为受美国出口管制条例的影响&#xff0c;将移除部分开发者的 MAINTAINER 权限&#xff0c;引起了新一轮对开源依赖的重新评估。 关于其中开源精神和社群治理的讨论&#xff0c;卫 Sir 的两篇文章已经讨论得比较清楚&#xff08;见尾注&#xff09;…

tensorforce(dqn框架)安装

win7 64位操作系统 python版本&#xff1a;3.8.10 pip install tensorflow 默认的tensorflow的版本是2.31.0&#xff0c;安装tensorforce后自动升级到3.6.0 tensorflow:升级到3.6.0 keras&#xff1a;升级到3.6.0 tensorforce安装 pip3 install tensorforce protobuf 需要降到…

STM32抢占优先级不生效

板类型&#xff1a;STM32F103精英开发板代码背景&#xff1a; 设置了USART1中断和KEY_UP中断(使用EXTI0外部中断)两个中断的优先级分组都设为2&#xff08;2bit抢占优先级&#xff0c;2bit响应优先级)EXTI0中断抢占优先级设为3&#xff0c; 响应优先级设为3USART1抢占优先级设…

4.1_未授权漏洞

未授权漏洞 成因&#xff1a;配置错误&#xff0c;默认口令&#xff08;弱口令&#xff09;&#xff0c;接口配置不当&#xff1b;未授权漏洞 漏洞利用方式 Redis 未授权访问漏洞 Getshell方式 写入webshell&#xff1b; 连接目标redis&#xff1a;redis-cli -h 192.168.7…

快速识别模型:simple_ocr,部署教程

快速识别图片中的英文、标点符号、数学符号、Emoji, 模型会输出图片中文字行的坐标位置、最低得分、识别结果。当前服务用到的模型&#xff1a;检测模型、数字识别、英文符号识别。 一、部署流程 1.更新基础环境 apt update2.安装miniconda wget https://repo.anaconda.com/…

衡山派D133EBS 开发环境安装及SDK编译烧写镜像烧录

1.创建新文件夹&#xff0c;用来存放SDK包&#xff08;其实本质就是路径要对就ok了&#xff09;&#xff0c;右键鼠标通过Open Git Bash here来打开git 输入命令 git clone --depth1 https://gitee.com/lcsc/luban-lite.git 来拉取&#xff0c;如下所示&#xff1a;&#xff0…

蓝桥杯不知道叫什么题目

小蓝有一个整数&#xff0c;初始值为1&#xff0c;他可以花费一些代价对这个整数进行变换。 小蓝可以花贵1的代价将教数增加1。 小蓝可以花费3的代价将整数增加一个值,这个值是整数的数位中最大的那个(1到9) .小蓝可以花费10的代价将整数变为原来的2倍, 例如&#xff0c;如果整…

读取mysql、kafka数据筛选后放入mysql

要求&#xff1a; 从kafka的topic-car中读取卡口数据&#xff0c;将超速车辆写入mysql的t_monitor_info表 当通过卡口的车速超过该卡口限速的1.2倍 就认定为超速。 G107 1&#xff09;卡口数据格式如下&#xff1a; action_time long --摄像头拍摄时间戳&#xff0c;精确到秒…

CVE-2022-24124

根据提示 访问api/get-organizations salmap和手工注入都不行&#xff0c;使用substring() 查库&#xff0c;查到有4个库 ?p1&pageSize10&valuee99nb&sortField&sortOrder&field (substring((select count(schema_name) from information_schema.sche…

采用python3.12 +django5.1 结合 RabbitMQ 和发送邮件功能,实现一个简单的告警系统 前后端分离 vue-element

一、开发环境搭建和配置 #mac环境 brew install python3.12 python3.12 --version python3.12 -m pip install --upgrade pip python3.12 -m pip install Django5.1 python3.12 -m django --version #用于检索系统信息和进程管理 python3.12 -m pip install psutil #集成 pika…

Python文件夹.idea的作用

每当我们创建python的时候&#xff0c;发现文件夹里面都会有.idea文件夹。 那么这个是什么东西呢&#xff1f; .idea是集成开发环境&#xff08;IDE&#xff09;创建项目时自动生成的配置目录。 .idea文件目录介绍&#xff1a; workspace.xml&#xff1a;包含项目的整体配置信…

【计算机网络】多路转接之poll

poll也是一种linux中的多路转接方案(poll也是只负责IO过程中的"等") 解决&#xff1a;1.select的fd有上限的问题&#xff1b;2.每次调用都要重新设置关心的fd 一、poll的使用 int poll(struct pollfd *fds, nfds_t nfds, int timeout); ① struct pollfd *fds&…