栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

@param传参

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

@param传参

文章目录
  • mybatis:sql语句需要多个不同类型的参数
  • resultMap子标签id的column属性易错点
  • 按照查询到的列有没有重复列名分为标准连接和自然连接
  • 按照查询到的行是否有两表不完全匹配的行分为内连接和外连接
    • 内连接(也叫等值连接)
    • 外部连接:有时候需要包含匹配字段不能完全匹配的那些行

mybatis:sql语句需要多个不同类型的参数

sql语句需要多个甚至多个不同类型参数时,可以使用parameterMap,parameterList,新建一个包含这些参数的类,也可以使用@Param.

原先不确定@Params这种方式数据能不能传不到sql里面,今天从执行的sql语句后中发现sql语句查出来数据了.说明传多个不同类型的参数时,可以用@Params.然后正确定位bug在resultMap里面.

resultMap子标签id的column属性易错点

resultMap是对resultType的"封装".用法是


	
	...
	

下图中的sql语句,查询结果中的列名是ID,NAME等,而不是s.ID,s.STU_ID等,因此resultMap中的column应该写ID,NAME等查询结果中的列名.因为resultMap是定义从查询结果映射到实体类的对应关系,不是从源数据表映射到实体类的.

应用:在sql中为字段起别名,就可以使用别名来定义resultMap中的column.


首先,在联结两个表时,实际上做 的是将第一个表中的每一行与第二个表中的每一行配对。

按照查询到的列有没有重复列名分为标准连接和自然连接

自然连接:排除多次出现的列,使用通配符和"表名.列名"来明确要查询的列.

SELECt
	s.*,
	c.ID AS cid,
	c.NAME AS cname 
FROM
	student AS s
	RIGHT OUTER JOIN class AS c ON s.CLASS_ID = c.ID;

标准连接:与之对应的,查询结果中有相同字段名.

SELECt
	* 
FROM
	student AS s
	RIGHT OUTER JOIN class AS c ON s.CLASS_ID = c.ID;

按照查询到的行是否有两表不完全匹配的行分为内连接和外连接

自连接:在单条语句中连接自身,本质上是内连接的一种特殊情况.

内连接(也叫等值连接)

两表进行匹配的字段要完全匹配才会在查询结果中作为一条记录.

SELECt
	* 
FROM
	student AS s
	INNER JOIN class AS c ON s.CLASS_ID = c.ID;

外部连接:有时候需要包含匹配字段不能完全匹配的那些行

左外连接

SELECt
	* 
FROM
	student
	LEFT OUTER JOIN class ON student.CLASS_ID = class.ID

右外连接

SELECt
	* 
FROM
	student
	RIGHT OUTER JOIN class ON student.CLASS_ID = class.ID;

全外连接
mysql 8.0.19版本(当前最新)不支持full outer join 但可以通过union和左右外连接来实现

SELECt
	* 
FROM
	student
	LEFT OUTER JOIN class ON student.CLASS_ID = class.ID UNIOn
SELECt
	* 
FROM
	student
	RIGHT OUTER JOIN class ON student.CLASS_ID = class.ID;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/602635.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号