当前位置: 首页 > article >正文

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

http://www.kler.cn/a/411013.html

相关文章:

  • HTTP头字段X-Forwarded-For,Proxy-Client-IP,WL-Proxy-Client-IP
  • redis数据类型详解
  • 【vue】vue中插槽slot的用法详解
  • 中班幼儿户外运动游戏活动现状及策略研究
  • uni-app 发布媒介功能(自由选择媒介类型的内容) 设计
  • Windows系统运行库软件游戏修复工具
  • 【设计模式】【结构型模式(Structural Patterns)】之组合模式(Composite Pattern)
  • HOW - React 状态模块化管理和按需加载(二) - jotai
  • Java ArrayList 与顺序表:在编程海洋中把握数据结构的关键之锚
  • Java学习笔记--继承的介绍,基本使用,成员变量和成员方法访问特点
  • MySQL 与 MongoDB 存储差异分析
  • 【优先算法学习】双指针--结合题目讲解学习
  • 深入了解决策树---机器学习中的经典算法
  • 排除杂音噪音,手机录音去除杂音软件如何办到?
  • vscode 如何鼠标双击时选择带有-的
  • 【北京迅为】iTOP-4412全能版使用手册-第十一章 设备树Linux系统编译
  • uniapp 开发微信小程序笔记
  • 计算机网络----基本概念
  • 华为云开发的入门介绍
  • 相亲交友小程序项目介绍
  • 【在Linux世界中追寻伟大的One Piece】多线程(二)
  • 文件上传upload-labs-docker通关
  • C++初阶—C++入门
  • 【算法】连通块问题(C/C++)
  • Qt常用控件之按钮类控件
  • 微前端基础知识入门篇(二)