做木业网站怎样起名园区门户网站建设

news/2025/9/26 17:46:35/文章来源:
做木业网站怎样起名,园区门户网站建设,山东省省建设厅网站,中国设计网 字体MyBatis中在查询进行select映射的时候#xff0c;返回类型可以用resultType#xff0c;也可以用resultMap#xff0c;resultType是直接 表示返回类型的#xff0c;而resultMap则是对外部ResultMap的引用#xff0c;但是resultType跟resultMap不能同时存在。 1.resultType … MyBatis中在查询进行select映射的时候返回类型可以用resultType也可以用resultMapresultType是直接 表示返回类型的而resultMap则是对外部ResultMap的引用但是resultType跟resultMap不能同时存在。 1.resultType 在MyBatis进行查询映射的时候其实查询出来的每一个属性都是放在一个对应的Map里面的其中键是属性名 值则是其对应的值。当提供的返回类型属性是resultType的时候MyBatis会将Map里面的键值对取出赋给 resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap 只是当我们提供的返回类型属性是resultType的时候MyBatis对自动的给我们把对应的值赋给resultType 所指定对象的属性而当我们提供的返回类型是resultMap的时候因为Map不能很好表示领域模型 我们就需要自己再进一步的把它转化为对应的对象这常常在复杂查询中很有作用。 这里要强调的是Mybatis是对返回的结果的每一行做映射的。所以下面的语句返回的是Integer,而不是List Xml代码   select idcount parameterTypeAreaDto resultTypejava.lang.Integer           SELECT id FROM USER   /select   返回一个int Xml代码   select idcount parameterTypeAreaDto resultTypejava.lang.Integer           SELECT count(*) FROM USER   /select   返回map Xml代码   select id”selectUsers” parameterType”int” resultType”hashmap”       select id, username, hashedPassword       from some_table       where id  #{id}   /select   这样一个语句简单作用于所有列被自动映射到HashMap的键上这由resultType属性指定。这在很多情况下是有用的但是HashMap不能很好描述一个领域模型。那样你的应用程序将会使用JavaBeans或POJOsPlain Old Java Objects普通Java对象来作为领域模型 返回javaBEAN 对象 Xml代码   select idcount parameterTypeAreaDto resultTypeUser           SELECT * FROM USER   /select    要记住类型别名是你的伙伴。使用它们你可以不用输入类的全路径。 Xml代码   typeAlias type”com.someapp.model.User” alias”User”/   这些情况下MyBatis会在幕后自动创建一个ResultMap基于属性名来映射列到JavaBean的属性上 2.resultMap MyBatis会自动创建一个ResultMap对象然后基于查找出来的属性名进行键值对封装然后再看到返回类型是Blog对象再从ResultMap中取出与Blog对象对应的键值对进行赋值。 当返回类型直接是一个ResultMap的时候也是非常有用的这主要用在进行复杂联合查询上因为进行简单查询是没有什么必要的。 简单resultMap配置  Xml代码   resultMap typecom.liulanghan.Blog idBlogResult         id columnid propertyid/         result columntitle propertytitle/         result columncontent propertycontent/         result columnowner propertyowner/     /resultMap        select idselectBlog parameterTypeint resultMapBlogResult           select * from t_blog where id  #{id}     /select   结果集的列比resultMap多会报错么 不会,只映射resultMap中有的列。 结果集的列比resultMap少会报错么 不会,只映射结果集中有的列。 高级结果映射 Xml代码   resultMap iddetailedBlogResultMap typeBlog       constructor           idArg columnblog_id javaTypeint/       /constructor       result propertytitle columnblog_title/       association propertyauthor columnblog_author_id javaType Author           id propertyid columnauthor_id/           result propertyusername columnauthor_username/           result propertypassword columnauthor_password/           result propertyemail columnauthor_email/           result propertybio columnauthor_bio/           result propertyfavouriteSection columnauthor_favourite_section/       /association       collection propertyposts ofTypePost           id propertyid columnpost_id/           result propertysubject columnpost_subject/           association propertyauthor columnpost_author_id javaTypeAuthor/           collection propertycomments columnpost_id ofType Comment               id propertyid columncomment_id/           /collection           collection propertytags columnpost_id ofType Tag                id propertyid columntag_id/           /collection           discriminator javaTypeint columndraft               case value1 resultTypeDraftPost/           /discriminator       /collection   /resultMap   resultMap       constructor – 类在实例化时用来注入结果到构造方法中            idArg – ID参数标记结果作为ID可以帮助提高整体效能            arg – 注入到构造方法的一个普通结果       id – 一个ID结果标记结果作为ID可以帮助提高整体效能       result – 注入到字段或JavaBean属性的普通结果      association – 一个复杂的类型关联许多结果将包成这种类型            嵌入结果映射 – 结果映射自身的关联或者参考一个      collection – 复杂类型的集            嵌入结果映射 – 结果映射自身的集或者参考一个     discriminator – 使用结果值来决定使用哪个结果映射          case – 基于某些值的结果映射                嵌入结果映射 – 这种情形结果也映射它本身因此可以包含很多相同的元素或者它可以参照一个外部的结果映射。 id 和result     id和result都映射一个单独列的值到简单数据类型 这两者之间的唯一不同是id表示的结果将是当比较对象实例时用到的标识属性。这帮助来改进整体表现特别是缓存和嵌入结果映射也就是联合映射。 它们共有的属性如下 property 映射到列结果的字段或属性。如果匹配的是存在的和给定名称相同的JavaBeans的属性那么就会使用。否则MyBatis将会寻找给定名称的字段。这两种情形你可以使用通常点式的复杂属性导航。比如你可以这样映射一些东西“username”或者映射到一些复杂的东西“address.street.number”。 column 从数据库中得到的列名或者是列名的重命名标签。这也是通常和会传递给resultSet.getString(columnName)方法参数中相同的字符串。 javaType 一个Java类的完全限定名或一个类型别名参加上面内建类型别名的列表。如果你映射到一个JavaBeanMyBatis通常可以断定类型。然而如果你映射到的是HashMap那么你应该明确地指定javaType来保证所需的行为。 jdbcType 在这个表格之后的所支持的JDBC类型列表中的类型。JDBC类型是仅仅需要对插入更新和删除操作可能为空的列进行处理。这是JDBC的需要而不是MyBatis的。如果你直接使用JDBC编程你需要指定这个类型-但仅仅对可能为空的值。 typeHandler 我们在前面讨论过默认的类型处理器。使用这个属性你可以覆盖默认的类型处理器。这个属性值是类的完全限定名或者是一个类型处理器的实现或者是类型别名。 constructor 。构造方法注入允许你在初始化时为类设置属性的值而不用暴露出公有方法。MyBatis也支持私有属性和私有JavaBeans属性来达到这个目的但是一些人更青睐构造方法注入。 为了向这个构造方法中注入结果MyBatis需要通过它的参数的类型来标识构造方法。Java没有自查反射参数名的方法。所以当创建一个构造方法元素时保证参数是按顺序排列的而且数据类型也是确定的。 association association关联元素处理“有一个”类型的关系,即一对一关联。它有两种关联方式 嵌套查询通过执行另外一个SQL映射语句来返回预期的复杂类型。 嵌套结果使用嵌套结果映射来处理重复的联合结果的子集。 嵌套查询 Xml代码   resultMap  iduserResultMap typeUser       id propertyid columnID jdbcTypeNUMERIC javaTypejava.lang.Long/       result propertyloginName columnLOGIN_NAME jdbcTypeVARCHAR javaTypejava.lang.String/       result propertypassword columnpassword jdbcTypeVARCHAR javaTypejava.lang.String/       result propertyroleId columnrole_id jdbcTypeNUMERIC javaTypejava.lang.Long/       association propertyrole columnrole_id javaTypeRole selectselectRole/   /resultMap      select idselectUser parameterTypejava.lang.Long resultMapuserResultMap           select * from User where id #{id}      /select       select idselectRole parameterTypejava.lang.Long resultTypeRole           select * from Role where id #{id}      /select    这里有两个查询一个查询加载User,一个查询加载Role. 这里select为另外一个映射语句的ID可以加载这个属性映射需要的复杂类型。获取的在列属性中指定的列的值将被传递给目标select语句作为参数。 注意: 而select 为selectRole的SQL输入参数可以随便给名称只要是输入参数与压入进去的值类型相同就行了可以写成 Xml代码   select * from Role where id  #{sfffs}    不管输入参数名称是什么mybatis最终会执行 效果为 Sql代码   select * from role where id resultSet.getLong(Role_id);   注意:要保证第二个查询查出来的结果只有一条记录。 要处理复合主键你可以指定多个列名通过column{prop1col1,prop2col2}这种语法来传递给嵌套查询语句。这会引起prop1和prop2以参数对象形式来设置给目标嵌套查询语句。 Xml代码   resultMap  iduserResultMap typeUser       id propertyid columnID jdbcTypeNUMERIC javaTypejava.lang.Long/       result propertyloginName columnLOGIN_NAME jdbcTypeVARCHAR javaTypejava.lang.String/       result propertypassword columnpassword jdbcTypeVARCHAR javaTypejava.lang.String/       result propertyroleId columnrole_id jdbcTypeNUMERIC javaTypejava.lang.Long/       association propertyrole column{idrole_id,namerole_name} javaTypeRole selectselectRole/   /resultMap      select idselectRole parameterTypeHashMap  resultTypeRole           select * from Role where id #{id} and name #{name}      /select   这种方式很简单但是对于大型数据集合和列表将不会表现很好。问题就是我们熟知的“N1查询问题”。概括地讲N1查询问题可以是这样引起的 你执行了一个单独的SQL语句来获取结果列表就是“1”。    对返回的每条记录你执行了一个查询语句来为每个加载细节就是“N”。 这个问题会导致成百上千的SQL语句被执行。这通常不是期望的。 比如一个查询用户列表的SQL假如有2000个用户那么就是一个查询用户的SQL和2000个查询角色的SQL一共有2001个SQL被运行。 MyBatis能延迟加载这样的查询就是一个好处因此你可以分散这些语句同时运行的消耗。然而如果你加载一个列表之后迅速迭代来访问嵌套的数据你会调用所有的延迟加载这样的行为可能是很糟糕的。 所以还有另外一种方法。 关联的嵌套结果 嵌套结果 Xml代码   resultMap  iduserResultMap typeUser       id propertyid columnID jdbcTypeNUMERIC javaTypejava.lang.Long/       result propertyloginName columnLOGIN_NAME jdbcTypeVARCHAR javaTypejava.lang.String/       result propertypassword columnpassword jdbcTypeVARCHAR javaTypejava.lang.String/       result propertyroleId columnrole_id jdbcTypeNUMERIC javaTypejava.lang.Long/       association propertyrole columnrole_id javaTypeRole resultMaproleResultMap/           id propertyid columnrole_id/           result propertyname columnrole_name/       /association   /resultMap      resultMap idroleResultMap typeRole       id propertyid columnrole_id/       result propertyname columnrole_name/   /resultMap   也可以这样配置 Xml代码   resultMap  iduserResultMap typeUser       id propertyid columnID jdbcTypeNUMERIC javaTypejava.lang.Long/       result propertyloginName columnLOGIN_NAME jdbcTypeVARCHAR javaTypejava.lang.String/       result propertypassword columnpassword jdbcTypeVARCHAR javaTypejava.lang.String/       result propertyroleId columnrole_id jdbcTypeNUMERIC javaTypejava.lang.Long/       association propertyrole columnrole_id javaTypeRole resultMaproleResultMap/   /resultMap      resultMap idroleResultMap typeRole       id propertyid columnrole_id/       result propertyname columnrole_name/   /resultMap   resultMap这是结果映射的ID可以映射关联的嵌套结果到一个合适的对象图中。这是一种替代方法来调用另外一个查询语句。这允许你联合多个表来合成到一个单独的结果集。这样的结果集可能包含重复数据的重复组需要被分解合理映射到一个嵌套的对象图。为了使它变得容易MyBatis让你“链接”结果映射来处理嵌套结果。一个例子会很容易来仿照这个表格后面也有一个示例。 注意这个联合查询以及采取保护来确保所有结果被唯一而且清晰的名字来重命名。 columnPrefix 属性 Xml代码   association propertyrole columnrole_id javaTypeRole resultMaproleResultMap columnPrefixrole_/           id propertyid columnid/           result propertyname columnname/   /association   非常重要在嵌套据诶过映射中id元素扮演了非常重要的角色。应应该通常指定一个或多个属性它们可以用来唯一标识结果。实际上就是如果你离开她了但是有一个严重的性能问题时MyBatis仍然可以工作。选择的属性越少越好它们可以唯一地标识结果。主键就是一个显而易见的选择尽管是联合主键。 上面你已经看到了如何处理“有一个”类型关联。但是“有很多个”是怎样的下面这个部分就是来讨论这个主题的。 collection collection关联元素处理一对多关联。 Xml代码   resultMap  idroleResultMap typeRole       id propertyid columnID jdbcTypeNUMERIC javaTypejava.lang.Long/       result propertyname columnNAME jdbcTypeVARCHAR javaTypejava.lang.String/       result propertyuserId columnuser_id jdbcTypeNUMERIC javaTypejava.lang.Long/       collection propertyuser columnuser_id javaTypeArrayList ofTypePost selectselectUser/      /resultMap      select idselectUser parameterTypejava.lang.Long   resultTypeUser           select * from uer where id #{id}    /select    同样可以这样配置 Xml代码   resultMap  idroleResultMap typeRole       id propertyid columnID jdbcTypeNUMERIC javaTypejava.lang.Long/       result propertyname columnNAME jdbcTypeVARCHAR javaTypejava.lang.String/       result propertyuserId columnuser_id jdbcTypeNUMERIC javaTypejava.lang.Long/       collection propertyuser columnuser_id javaTypeArrayList ofTypePost           id propertyid columnuser_id/           result propertyname columnuser_name/       /collection   /resultMap   resultMap iduserResultMap typeUser       id propertyid columnuser_id/       result propertyname columnuser_name/   /resultMap

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab通过GUI建立点云的最远点下采样(Farthest point sampling)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

B2009 计算 (a+b)/c 的值

B2009 计算 (a+b)/c 的值 解题思路 题目分析 这是一个基础的算术运算题目,要求计算三个整数的表达式 (a+b)/c 的值,其中除法是整除运算。重要知识点 1. C++基本程序结构 #include<bits/stdc++.h>:万能头文件,…

你好 博客园!

萌新驾到!!!

网站建设企业有哪些怎么用linux做网站服务器

学习自我评价4篇发布时间&#xff1a;2019-04-08在这次研究性学习中&#xff0c;我们小组在老师的指导下&#xff0c;通过全体成员的协作分工、研究探讨&#xff0c;集全体之智慧&#xff0c;个人之所学&#xff0c;充分将课本中的理论知识与生活实践相结合&#xff0c;用理论指…

成都营销网站网站设计在线crm系统

jenkins安装 下载jenkins 官网&#xff1a;Jenkins download and deployment 官方文档说明&#xff1a;Jenkins User Documentation 安装jenkins1.点击下载好的安装包&#xff0c;点击Next 2.选择一个安装路径 如果系统是windows家庭版打不开策略就创建一个txt文件&#xff0c…

网站动态程序网站建设需要条件

在当今数字化时代&#xff0c;企业对IT运维的需求日益增长&#xff0c;尤其是对于用户权限和设备管理的精细化控制。为了满足这些需求&#xff0c;监控易运维系统最近进行了一次重大的升级&#xff0c;特别是在用户权限管理和运维可视化方面取得了显著的进步。 在用户权限管理方…

设计一个网站页面需要多少钱优建网站

Imperva是网络安全解决方案的专业提供商&#xff0c;能够在云端和本地对业务关键数据和应用程序提供保护。公司成立于 2002 年&#xff0c;拥有稳定的发展和成功历史并于 2014 年实现产值1.64亿美元&#xff0c;公司的3700多位客户及300个合作伙伴分布于全球各地的90多个国家。…

东营市做网站好网站具备条件

【Python】成功解决IndexError: list index out of range &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到您的订…

详细介绍:【杂谈】Godot 4.5下载指南

详细介绍:【杂谈】Godot 4.5下载指南2025-09-26 17:33 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

腾讯建设网站视频视频视频拍摄制作

演示视频&#xff1a; Springbootvue的导师双选管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的导师双选管理系统&#xff0c;采用M&#xff08;model&a…

2025无人机林业行业场景解决方案

森林资源占全球陆地面积的31%,却面临火灾、病虫害、非法砍伐等威胁。传统人工巡护效率低、风险高,而无人机技术的突破性应用正重塑林业管理模式。2025年,随着国家林草局提出 “林业核心业务信息化率100%” 目标,无…

安全帽检测数据集-YOLO格式建筑工地安全图像数据-个人防护装备(PPE)目标检测算法训练-包含安全帽/无安全帽/等多类别标注-深度学习计算机视觉应用-工业安全监控系统开发-实时预警检测模型

获取更多刚质量数据集,可以访问典枢数据交易平台:典枢数据交易平台 您可以从此链接下载此数据:安全帽检测数据集-YOLO格式建筑工地安全图像数据-个人防护装备(PPE)目标检测算法训练-包含安全帽/无安全帽/等多类别标…

盐城市网站wordpress大前端dux3.0

随着 Linux 操作系统的广泛应用&#xff0c;特别是 Linux 在嵌入式领域的发展&#xff0c;越来越多的人开始投身到 Linux 内核级的开发中。面对日益庞大的 Linux 内核源代码&#xff0c;开发者在完成自己的内核代码后&#xff0c;都将面临着同样的问题&#xff0c;即如何将源代…

自己网站上放个域名查询网站设计不同的原因

试题 基础练习 字母图形 提交此题 评测记录 资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 利用字母可以组成一些美丽的图形&#xff0c;下面给出了一个例子&#…

实用指南:Spring Boot集群 集成Nginx配置:负载均衡+静态资源分离实战

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

WPF ItemsControl implement Select in mvvm via behavior

<Window x:Class="WpfApp11.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d=&quo…

网站浮动广告怎么做优质的广州微网站建设

第一作者&#xff1a;Yang Zhao、Maedeh Amirmaleki通讯作者&#xff1a;TobinFilleter、蔡梅、孙学良通讯单位&#xff1a;加拿大多伦多大学、通用汽车研发中心、加拿大西安大略大学研究亮点&#xff1a;1.提出了锂金属负极“双层保护膜”的概念。2.通过ALD/MLD精确控制双层保…

做网站公司哪家强随便编一个公司网站

昨天晚上的直播甚是精彩 方同学不但分享了 获奖论文、解题技巧 还分享了 赛前准备、比赛经验和日程规划 po几张截图让大家感受下 此时此刻可能会有不少童鞋 正在为错过直播而懊悔 不用担心 超模君又准备了一份豪华大礼 本周 超模君特意邀请到 今年美赛A题特等奖获奖者 徐乾同学…

SI3933低频唤醒接收芯片完整指南:结构框图、PCB布局与选型要点芯片概述与主要特性

SI3933是一款三通道低功耗ASK接收机芯片,专为15kHz-150kHz低频载波频率检测而设计。这款芯片的主要功能是检测低频数字信号并产生唤醒信号,广泛应用于各种无线唤醒场景。 SI3933的核心特性包括其三通道ASK唤醒接收能…