首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mybatis配置文件详解

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects, 普通的 Java 对象)映射成数据库中的记录。

MyBatis 配置文件详解

MyBatis 的配置文件通常是一个 XML 文件,名为 mybatis-config.xml。这个文件包含了影响 MyBatis 行为的设置和属性信息。

基础概念

  1. 配置文件结构
    • configuration:根元素。
    • properties:属性配置。
    • settings:全局配置参数。
    • typeAliases:类型别名。
    • environments:环境配置,支持多环境配置。
    • mappers:映射器配置,指定 SQL 映射文件的位置。
  • 核心元素
    • <properties>:用于定义属性,可以在其他地方引用。
    • <settings>:全局设置,如缓存、延迟加载等。
    • <typeAliases>:为 Java 类型设置简短的名字。
    • <environments>:配置数据库环境,包括事务管理器和数据源。
    • <mappers>:声明 SQL 映射文件或映射器接口。

优势

  • 简化 JDBC 代码:MyBatis 自动处理了建立连接、创建语句、设置参数、结果集检索等繁琐工作。
  • 灵活的 SQL 编写:可以直接编写原生的 SQL,便于优化和调试。
  • 映射简单:通过 XML 或注解,可以将 Java 对象与数据库表进行映射。
  • 支持动态 SQL:可以使用 <if>, <choose>, <when>, <otherwise>, <trim>, <where>, <set>, <foreach> 等标签编写动态 SQL。
  • 事务管理:内置事务管理机制。

类型

  • 基于 XML 的配置:传统的配置方式,通过 XML 文件定义 SQL 和映射关系。
  • 基于注解的配置:使用注解直接在接口方法上定义 SQL 和映射关系。

应用场景

  • 企业级应用:适用于各种规模的企业级应用,特别是那些需要复杂查询和高度定制化 SQL 的场景。
  • 互联网应用:对于高并发、大数据量的互联网应用,MyBatis 提供了灵活的性能优化手段。

遇到问题的原因及解决方法

  1. SQL 执行错误
    • 原因:可能是 SQL 语句本身错误,或者是参数传递不正确。
    • 解决方法:检查 SQL 语句,确保语法正确;使用日志查看实际执行的 SQL 和参数。
  • 映射错误
    • 原因:可能是 Java 对象属性与数据库字段不匹配,或者是类型转换问题。
    • 解决方法:检查映射文件中的字段名和类型,确保与数据库一致;使用 resultMap 明确指定映射关系。
  • 配置文件加载失败
    • 原因:可能是配置文件路径错误,或者是 XML 格式不正确。
    • 解决方法:确认配置文件路径无误;使用 XML 验证工具检查文件格式。

示例代码

以下是一个简单的 MyBatis 配置文件示例:

代码语言:txt
复制
<?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>
    <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
    <property name="jdbc.url" value="jdbc:mysql://localhost:3306/mydb"/>
    <property name="jdbc.username" value="root"/>
    <property name="jdbc.password" value="root"/>
  </properties>
  <settings>
    <setting name="cacheEnabled" value="true"/>
    <setting name="lazyLoadingEnabled" value="false"/>
  </settings>
  <typeAliases>
    <typeAlias alias="User" type="com.example.User"/>
  </typeAliases>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <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>
  <mappers>
    <mapper resource="com/example/UserMapper.xml"/>
  </mappers>
</configuration>

在这个示例中,我们定义了数据库连接信息、全局设置、类型别名以及映射器文件的位置。通过这样的配置,MyBatis 可以正确地加载并执行 SQL 映射文件中的 SQL 语句。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MyBatis、Mapper 配置文件详解

    MyBatis 配置文件截图 1、 configuration 这是配置文件的根元素, 所有的其他元素都要在这个标签下使用. 2、 environments 用于管理所有的环境, 并可以指定默认使用哪个环境...用于配置数据源, 设置 MyBatis 是否使用连接池技术, 并且配置数据 库连接的四个参数 type 属性 : 用于设置 MyBatis 是否使用连接池技术 a) POOLED, 表示采用连接池技术...properties 7、property 用于配置数据库连接参数(driver, url, username, password) 8、mappers 用于扫描 mapper 信息 mapper 映射配置文件截图...在 MyBatis 中, 推荐使用 mapper 作为包名, 我们只需要写一个映射配置文件即可....如果返回的是集合类型, 要写集合的泛型的类型. 3、typeAliases 用于给 java 类型定义别名, 方便在配置文件中使用. 使用方式

    86310

    MyBatis配置文件 —— 相关标签详解

    目录 一、Mybatis配置文件 — properties标签 二、Mybatis配置文件 — settings标签 三、Mybatis配置文件 — plugins标签 四、Mybatis配置文件 —...typeAliases标签 五、Mybatis配置文件 — environments标签 六、Mybatis配置文件 — mappers标签 ---- 一、Mybatis配置文件 — properties...三、Mybatis配置文件 — plugins标签          是配置MyBatis插件的。插件可以增强MyBatis功能,比如进行sql增强,打印日志,异常处理等。...四、Mybatis配置文件 — typeAliases标签         MyBatis对常用类有默认别名支持,比如java.lang.Stirng的别名为string。...五、Mybatis配置文件 — environments标签          可以为 MyBatis 配置数据环境。

    98840

    _MyBatis配置文件 —— 相关标签详解

    一、Mybatis配置文件 — properties标签 MyBatis配置文件结构: -configuration         -properties(属性)                 ...二、Mybatis配置文件 — settings标签          是配置MyBatis运行时的一些行为的,例如缓存、延迟加载、命名规则等一系列控制性参数。...三、Mybatis配置文件 — plugins标签          是配置MyBatis插件的。插件可以增强MyBatis功能,比如进行sql增强,打印日志,异常处理等。...四、Mybatis配置文件 — typeAliases标签         MyBatis对常用类有默认别名支持,比如java.lang.Stirng的别名为string。...五、Mybatis配置文件 — environments标签          可以为 MyBatis 配置数据环境。

    17350

    【框架】116:mybatis配置文件标签详解

    今日学习的内容说明: 核心配置文件中,各种标签的作用详解。 映射文件中的各种标签。 映射文件中$和#的区别以及特殊用法。...最后介绍一款mybatis插件 一、核心配置文件标签 即这两天配置的mybatis-config.xml文件。...其中这块的内容,我们可以封装到一个配置文件中:jdbc.properties ? 使用properties标签引入jdbc配置文件。...在核心配置文件中,使用${}取出对应的值,其中要和jdbc配置文件中的属性对应。 2settings标签 settings,设置的意思,它就好比是一个开启某某功能的开关。...三、介绍一个mybatis插件 该插件对于新手来说会有点用处,对于老程序员来说感觉用处不大。 1下载插件 idea中选择File-settings: ?

    29220

    Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    ,也感受到 Mybatis 的简单高效舒美,但是肯定有部分朋友对于 Mybatis 的配置文件只是了解基本组成和大致用法,尚无一套完整的结构记忆,所以本篇文章我们将详细的介绍 Mybatis 的配置全貌...,毕竟 Mybatis 的配置文件对于整个 Mybatis 体系的构建与支撑有着深远的影响。...Mybatis配置文件XML全貌详解 Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件 Mybatis系列全解(六):Mybatis最硬核的API你知道几个?...[30ec400a6ee06546af3fdfa8923d31ff.png] Mybatis 配置全貌 Mybatis框架本身,理论上就一个配置文件,其实也只需要一个配置文件,即mybatis-config.xml...SQL 映射器配置文件,我们后续更新,这块基本是和我们日常打交道最高频的操作。 本篇完,本系列下一篇我们讲《 Mybatis系列全解(五):全网最全!详解Mybatis的Mapper映射文件 》。

    1.1K00

    MyBatis:核心配置文件

    本篇内容包括:MyBatis 配置文件概述以及核心配置文件详解(configuration、properties、settings、typeAliases、typeHandlers、objectFactory...一、概述 Mybatis 配置文件两大类:1.Mybatis 主配置文件;2.Mybatis 的 mapper 文件 Mybatis 主配置文件:提供 Mybatis 全局设置的。...---- 二、核心配置文件 核心配置文件 mybatis-config.xml,配置文件会影响 mybatis 的行为设置和属性信息 MyBatis 配置文档的顶层结构如下: – configuration...它仅用于 XML 配置,意在降低冗余的全限定类名书写 在Mybatis核心配置文件中配置(将Java类的全路径替换成一个别名,在xml使用): 配置文件中配置优先级最高,开启包扫描后,如果还有另外配置注解,则以注解为准。

    68610

    Mybatis核心配置文件概述

    MyBatis核心配置文件层级关系 [在这里插入图片描述] 2....MyBatis常用配置解析 2.1 environments 标签 数据库环境的配置,支持多环境配置 [在这里插入图片描述] 其中,事务管理器(transactionManager)类型有两种: JDBC...2.2 mapper 标签 该标签的作用是加载映射的,加载方式有如下几种: 使用相对类路径的资源引用,例如: mybatis/builder/AuthorMapper.xml..."/> 将包内的映射器接口实现全部注册为映射器,例如: mybatis.builder"/> 2.3 properties 标签 实际开发中,习惯将数据源的配置信息单独抽取成一个...小节 核心配置文件常用配置: properties标签:该标签可以加载外部的properties文件 [在这里插入图片描述] typeAliases标签:设置类型别名 [在这里插入图片描述] mappers

    38120

    mybatis教程2(配置文件)

    MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息。...settings 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。...下表描述了设置中各项的意图、默认值等 设置参数 描述 有效值 默认值 cacheEnabled 全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存。...getUserById(int id); } 测试文件 @Test public void query() throws IOException { // 1.通过Resources对象加载配置文件...mapper 映射器:我们添加的SQL语句的映射文件要被配置文件能够发现,在自动发现方面mybatis在这方面并没有实现,所以我们需要通过mapper标签来关联映射文件。 方式一:一个个扫描 <!

    68020
    领券