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(属性) 2. settings(设置) 3.typeAliases(类型别名) 4.environments࿰…...
Mybatis中limit用法与分页查询
错误示范 错误示范一: <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 失败 问题描述 如图,在做USB OTG 设备模式的时候需要用到libcomposite.ko驱动,加载失败了。 原因&解决方法 有一个依赖叫configfs.ko的驱动没有安装。可以从内核代码的fs/configfs/configfs.ko中找到这个驱动。先加载confi…...
Spring Tool Suite 4
参考:Spring tool suite4 安装及配置_springtoolsuite4_猿界零零七的博客-CSDN博客 下载:Spring | Tools 将下载的JAR进行解压两次,直至解压出contents中的sts 双击启动 第一次打开需要指定工作区文件夹 配置Maven的config 安装插件...
带你读论文第三期:微软研究员、北大博士陈琪,荣获NeurIPS杰出论文奖
Datawhale干货 来源:WhalePaper,负责人:芙蕖 WhalePaper简介 由Datawhale团队成员发起,对目前学术论文中比较成熟的 Topic 和开源方案进行分享,通过一起阅读、分享论文学习的方式帮助大家更好地“高效全面自律”学习&…...
农业中的计算机视觉 2023
物体检测应用于检测田间收割机和果园苹果 一、说明 欢迎来到Voxel51的计算机视觉行业聚焦博客系列的第一期。每个月,我们都将重点介绍不同行业(从建筑到气候技术,从零售到机器人等)如何使用计算机视觉、机器学习和人工智能来推动…...
掌握三个基础平面构成法则 优漫动游
1.图形重复:通过重复使用同一种或类似的图形元素,创造出一种有节奏、有重复感的视觉效果。这种设计手法可以使海报看起来更加统一和协调,增强视觉冲击力。 掌握三个基础平面构成法则 2.字体重复:通过重复使用同一种或类似的字体元素,创造出一种有序…...
叶工好容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(长连接服务) logic (业务) lsb (负载均衡)store(存储) - Gitee.com,需要指定某一…...
BCNet论文精读
Title—标题 Boundary Constraint Network(边界约束网络) With Cross Layer Feature Integration(跨层特征融合) for Polyp Segmentation(息肉分割) 结构分析 标题结构由三部分组成,分别是本文…...
PHP8的注释-PHP8知识详解
欢迎你来到PHP服务网,学习《PHP8知识详解》系列教程,本文学习的是《PHP8的注释》。 什么是注释? 注释是在程序代码中添加的文本,用于解释和说明代码的功能、逻辑或其他相关信息。注释通常不会被编译器或解释器处理,而…...
优化企业集成架构:iPaaS集成平台助力数字化转型
前言 在数字化时代全面来临之际,企业正面临着前所未有的挑战与机遇。技术的迅猛发展与数字化转型正在彻底颠覆各行各业的格局,不断推动着企业迈向新的前程。然而,这一数字化时代亦衍生出一系列复杂而深奥的难题:各异系统之间数据…...
前端存储之sessionStorage和localStorage
sessionStorage sessionStorage是一种用于web浏览器中临时保存数据的客户端存储机制。它允许在同一个浏览器窗口的会话期间,保存和访问临时数据,而这些数据在用户关闭窗口或者标签页会被清除。每个sessionStorage对象都与当前的浏览器会话相关联&#x…...
上海亚商投顾:沪指放量大涨1.84% 证券股掀涨停潮
上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日低开高走,沪指午后放量涨近2%,上证50盘中大涨超3%。大金融板块全线爆发&#…...
微服务划分的原则
微服务的划分 微服务的划分要保证的原则 单一职责原则 1、耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及…...
作业 - 3
[ 作业 - 3 ] Industrial Melanism: The Case of the Peppered Moth melanism n. 黑化;黑变病;黑色素沉着症 peppered adj. 用胡椒调味的;加胡椒的,撒胡椒粉的 pepper的过去分词和过去式 moth n. 蛾;飞蛾 Paragraph 2 Over a …...
MTK联发科安卓核心板MT8385(Genio 500)规格参数资料_性能介绍
简介 MT8385安卓核心板 是一个高度集成且功能强大的物联网平台,具有以下主要特性: l 四核 Arm Cortex-A73 处理器 l 四核Arm Cortex-A53处理器 l Arm Mali™-G72 MP3 3D 图形加速器 (GPU),带有 Vulkan 1.0、OpenGL ES 3.2 和 OpenCL™ 2.x …...
ChatGPT付费创作系统小程序端开发工具提示打开显示无法打开页面解决办法
很多会员在上传小程序前端时经常出现首页无法打开的情况,错误提示无法打开该页面,不支持打开,这种问题其实就是权限问题,页面是通过调用web-view访问,说明业务域名有问题,很多都是合法域名加了,…...
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.执行: 1 setttings.py: 先注释掉 django.contrib.admin 2 注释掉urls.py path(“admin/…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
