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

Mybatis映射关系mybatis核心配置文件

目录

1.Mybatis映射关系

1.1一对一映射之resultType

1.2resultMap处理映射关系

2.mybatis核心配置文件

1. properties(属性)

2. settings(设置)

3.typeAliases(类型别名)

4.environments(环境配置)

 5.mappers(映射器)


1.Mybatis映射关系

1.1一对一映射之resultType

   <!--类的全路径名 包名+类名 com/rocky/mapper/UserMapper.java--><select id="queryUserAll" resultType="com.rocky.pojo.User">select * from user;</select>//因为简化类路径名称了可以写user 不区分大小写<select id="queryUserAll" resultType="userr">select * from user;</select><!--2:简化类的全路径名称 typeAliases类型别名  alias别名如果不设置alias属性,那么默认就是类名 且不区分大小写package name属性:配置包的路径。使用类名并且忽略大小写--><typeAliases>
<!--        <typeAlias type="com.rocky.pojo.User"></typeAlias>--><package name="com.rocky.pojo"/></typeAliases>

1.2resultMap处理映射关系

 <!--resultMap是专门处理数据列和javaBean字段之间的映射关系的id 指的是resultMap的id  type当前的javaBean 将来用里面的字段去映射数据表的列<id> 专门用来映射数据表的id和javaBean字段的映射<result property:JavaBean中的字段   column=列>--><resultMap id="queryAll" type="Employee"><id property="a" column="id"></id><result property="b" column="emp_name"></result><result property="c" column="emp_pwd"></result><result property="d" column="dept_id"></result></resultMap><select id="getEmployeeAll" resultMap="queryAll">select id,emp_name, emp_pwd ,dept_id from employee;</select>

2.mybatis核心配置文件

   

MyBatis 核心配置文件整体结构

注意:在编写配置是要严格按照以下顺序排列,不然会报错

MyBatis的配置文件中主要包括以下配置:
    properties(属性)
    settings(设置
    typeAliases(类型别名)
    typeHandlers(类型处理器)
    objectFactory(对象工厂)
    plugins(插件)
    environments(环境配置)
    transactionManager(事务管理器):声明事物管理器

    dataSource(数据源)
    databaseIdProvider(数据库厂商标识)
    mappers(映射器)

1. properties(属性)

加载对应的配置文件

 <!--1:引入外部的配置文件--><properties resource="jdbc.properties"></properties>

2. settings(设置)

:配置Mybatis的一些设置,如:log4j日志信息等

<settings><!--name属性里面mybatis提供了一个属性可以让我们将数据表中的列和JavaBean中的字段映射映射规则:去掉数据列的下划线之后的首字母大写mapUnderscoreToCamelCase 忽略下划线并且下划线后的首字母大写。value="true" 打开映射关系--><setting name="mapUnderscoreToCamelCase" value="true"/></settings>

3.typeAliases(类型别名

:扫描对应包下面的实体类,在xml文件中用小写表示就好

第⼀种⽅式:typeAlias

alias是⼤⼩写不敏感的,type属性:指定给哪个类起别名. alias属性:别名

<typeAliases><typeAlias type="com.hu.pojo.Car" alias="Car"/>
</typeAliases>


第⼆种⽅式:package

如果⼀个包下的类太多,每个类都要起别名,会导致typeAlias标签配置较多,所以mybatis⽤提供 package的配置⽅式,只需要指定包名,该包下的所有类都⾃动起别名,别名就是简类名。并且别名不 区分⼤⼩写。

<!--2:简化类的全路径名称 typeAliases类型别名  alias别名如果不设置alias属性,那么默认就是类名 且不区分大小写package name属性:配置包的路径。使用类名并且忽略大小写--><typeAliases>
<!--        <typeAlias type="com.rocky.pojo.User"></typeAlias>--><package name="com.rocky.pojo"/></typeAliases>

4.environments(环境配置

:配置数据库环境,可以配置多个,最后生效的为default

<!--配置数据库的环境--><environments default="dev"><!--开发人员去使用--><environment id="dev"><!--数据库事务管理的方式 默认使用JDBC--><transactionManager type="JDBC"/><!--dataSource 数据库连接池  POOLED--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><!--username这个属性默认 是去找环境变量中的username--><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments>

 5.mappers(映射器)

:扫描对应包下面的mapper.xml文件   

SQL映射⽂件的配置⽅式包括四种:

  • resource:从类路径中加载
  • url:从指定的全限定资源路径中加载
  • class:使⽤映射器接⼝实现类的完全限定类名
  • package:将包内的映射器接⼝实现全部注册为映射器

resource:这种⽅式是从类路径中加载配置⽂件,所以这种⽅式要求SQL映射⽂件必须放在resources⽬录下或其⼦ ⽬录下。

<mappers><mapper resource="com/hu/mapper/AuthorMapper.xml"/>
</mappers>

url:这种⽅式显然使⽤了绝对路径的⽅式,这种配置对SQL映射⽂件存放的位置没有要求,随意。

<mappers><mapper url="file:///var/mappers/AuthorMapper.xml"/>
</mappers>

class:如果使⽤这种⽅式必须满⾜以下条件: SQL映射⽂件和mapper接⼝放在同⼀个⽬录下。 SQL映射⽂件的名字也必须和mapper接⼝名⼀致。

<!-- 使⽤映射器接⼝实现类的完全限定类名 -->
<mappers><mapper class="org.mybatis.builder.AuthorMapper"/><mapper class="org.mybatis.builder.BlogMapper"/><mapper class="org.mybatis.builder.PostMapper"/>
</mappers>

将CarMapper.xml⽂件移动到和mapper接⼝同⼀个⽬录下: 在resources⽬录下新建:com/powernode/mybatis/mapper【这⾥千万要注意:不能这样新建 com.powernode.mybatis.dao】

将CarMapper.xml⽂件移动到mapper⽬录下 修改mybatis-config.xml⽂件

<mappers><mapper class="com.powernode.mybatis.mapper.CarMapper"/>
</mappers>

Package:如果class较多,可以使⽤这种package的⽅式,但前提条件和上⼀种⽅式⼀样。

<mappers>
<!--      <mapper resource="com/rocky/mapper/UserMapper.xml"/>--><!--如果你想在mapper节点下面使用package1:在src下面必须有接口实现2:mapper配置文件的路径名称必须和src下面的路径名称一致--><package name="com/rocky/mapper"/></mappers>

相关文章:

Mybatis映射关系mybatis核心配置文件

目录 1.Mybatis映射关系 1.1一对一映射之resultType 1.2resultMap处理映射关系 2.mybatis核心配置文件 1. properties&#xff08;属性&#xff09; 2. settings&#xff08;设置&#xff09; 3.typeAliases&#xff08;类型别名&#xff09; 4.environments&#xff0…...

Mybatis中limit用法与分页查询

错误示范 错误示范一&#xff1a; <select id"fileInspectionList" resultType"map">SELECT <include refid"aip_n_static_cols"/>FROM sys_inspection_form WHERE<if test" type admin.toString() ">dept_id …...

libcomposite: Unknown symbol config_group_init (err 0)

加载libcomposite.ko 失败 问题描述 如图&#xff0c;在做USB OTG 设备模式的时候需要用到libcomposite.ko驱动&#xff0c;加载失败了。 原因&解决方法 有一个依赖叫configfs.ko的驱动没有安装。可以从内核代码的fs/configfs/configfs.ko中找到这个驱动。先加载confi…...

Spring Tool Suite 4

参考&#xff1a;Spring tool suite4 安装及配置_springtoolsuite4_猿界零零七的博客-CSDN博客 下载&#xff1a;Spring | Tools 将下载的JAR进行解压两次&#xff0c;直至解压出contents中的sts 双击启动 第一次打开需要指定工作区文件夹 配置Maven的config 安装插件...

带你读论文第三期:微软研究员、北大博士陈琪,荣获NeurIPS杰出论文奖

Datawhale干货 来源&#xff1a;WhalePaper&#xff0c;负责人&#xff1a;芙蕖 WhalePaper简介 由Datawhale团队成员发起&#xff0c;对目前学术论文中比较成熟的 Topic 和开源方案进行分享&#xff0c;通过一起阅读、分享论文学习的方式帮助大家更好地“高效全面自律”学习&…...

农业中的计算机视觉 2023

物体检测应用于检测田间收割机和果园苹果 一、说明 欢迎来到Voxel51的计算机视觉行业聚焦博客系列的第一期。每个月&#xff0c;我们都将重点介绍不同行业&#xff08;从建筑到气候技术&#xff0c;从零售到机器人等&#xff09;如何使用计算机视觉、机器学习和人工智能来推动…...

掌握三个基础平面构成法则 优漫动游

1.图形重复&#xff1a;通过重复使用同一种或类似的图形元素,创造出一种有节奏、有重复感的视觉效果。这种设计手法可以使海报看起来更加统一和协调,增强视觉冲击力。 掌握三个基础平面构成法则 2.字体重复&#xff1a;通过重复使用同一种或类似的字体元素,创造出一种有序…...

叶工好容5-日志与监控

目录 前言 平台维度 docker运行状态 cAdvisor-日志采集者 Heapster-日志收集 metrics-server-出生决定成败 kube-state-metrics-不完美中的完美 应用维度 日志 部署方式 输出方式 工具选择 日志接入 监控 serviceMonitor Annotation Prometheus扩展性 Thanos …...

Dubbo 指定调用固定ip+port dubbo调用指定服务 dubbo调用不随机 dubbo自定义调用服务 dubbo点对点通信 dubbo指定ip

1. 在写分布式im时nami-im: 分布式im, 集群 zookeeper netty kafka nacos rpc主要为gate&#xff08;长连接服务&#xff09; logic &#xff08;业务&#xff09; lsb &#xff08;负载均衡&#xff09;store&#xff08;存储&#xff09; - Gitee.com&#xff0c;需要指定某一…...

BCNet论文精读

Title—标题 Boundary Constraint Network&#xff08;边界约束网络&#xff09; With Cross Layer Feature Integration&#xff08;跨层特征融合&#xff09; for Polyp Segmentation&#xff08;息肉分割&#xff09; 结构分析 标题结构由三部分组成&#xff0c;分别是本文…...

PHP8的注释-PHP8知识详解

欢迎你来到PHP服务网&#xff0c;学习《PHP8知识详解》系列教程&#xff0c;本文学习的是《PHP8的注释》。 什么是注释&#xff1f; 注释是在程序代码中添加的文本&#xff0c;用于解释和说明代码的功能、逻辑或其他相关信息。注释通常不会被编译器或解释器处理&#xff0c;而…...

优化企业集成架构:iPaaS集成平台助力数字化转型

前言 在数字化时代全面来临之际&#xff0c;企业正面临着前所未有的挑战与机遇。技术的迅猛发展与数字化转型正在彻底颠覆各行各业的格局&#xff0c;不断推动着企业迈向新的前程。然而&#xff0c;这一数字化时代亦衍生出一系列复杂而深奥的难题&#xff1a;各异系统之间数据…...

前端存储之sessionStorage和localStorage

sessionStorage sessionStorage是一种用于web浏览器中临时保存数据的客户端存储机制。它允许在同一个浏览器窗口的会话期间&#xff0c;保存和访问临时数据&#xff0c;而这些数据在用户关闭窗口或者标签页会被清除。每个sessionStorage对象都与当前的浏览器会话相关联&#x…...

上海亚商投顾:沪指放量大涨1.84% 证券股掀涨停潮

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数今日低开高走&#xff0c;沪指午后放量涨近2%&#xff0c;上证50盘中大涨超3%。大金融板块全线爆发&#…...

微服务划分的原则

微服务的划分 微服务的划分要保证的原则 单一职责原则 1、耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密&#xff0c;其耦合性就越强&#xff0c;模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及…...

作业 - 3

[ 作业 - 3 ] Industrial Melanism: The Case of the Peppered Moth melanism n. 黑化&#xff1b;黑变病&#xff1b;黑色素沉着症 peppered adj. 用胡椒调味的&#xff1b;加胡椒的&#xff0c;撒胡椒粉的 pepper的过去分词和过去式 moth n. 蛾;飞蛾 Paragraph 2 Over a …...

MTK联发科安卓核心板MT8385(Genio 500)规格参数资料_性能介绍

简介 MT8385安卓核心板 是一个高度集成且功能强大的物联网平台&#xff0c;具有以下主要特性&#xff1a; l 四核 Arm Cortex-A73 处理器 l 四核Arm Cortex-A53处理器 l Arm Mali™-G72 MP3 3D 图形加速器 (GPU)&#xff0c;带有 Vulkan 1.0、OpenGL ES 3.2 和 OpenCL™ 2.x …...

ChatGPT付费创作系统小程序端开发工具提示打开显示无法打开页面解决办法

很多会员在上传小程序前端时经常出现首页无法打开的情况&#xff0c;错误提示无法打开该页面&#xff0c;不支持打开&#xff0c;这种问题其实就是权限问题&#xff0c;页面是通过调用web-view访问&#xff0c;说明业务域名有问题&#xff0c;很多都是合法域名加了&#xff0c;…...

CVPR2023新作:pix2pix3D

Title: 3D-Aware Conditional Image SynthesisAffiliation: Carnegie Mellon University (卡内基梅隆大学)Authors: Kangle Deng, Gengshan Yang, Deva Ramanan, Jun-Yan ZhuKeywords: Image Synthesis, 3D-aware, Neural Radiance Fields, Interactive Editing, Conditional G…...

Django自定义用户错误记录

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency mysit.0001_initial on database default.执行&#xff1a; 1 setttings.py: 先注释掉 django.contrib.admin 2 注释掉urls.py path(“admin/…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...

PH热榜 | 2025-06-08

1. Thiings 标语&#xff1a;一套超过1900个免费AI生成的3D图标集合 介绍&#xff1a;Thiings是一个不断扩展的免费AI生成3D图标库&#xff0c;目前已有超过1900个图标。你可以按照主题浏览&#xff0c;生成自己的图标&#xff0c;或者下载整个图标集。所有图标都可以在个人或…...