resulttype和resultmap的区别MyBatis中resultType和resultMap区别mybatis resulttype和resultmap区别
MyBatis中在进行查询时候,必须在mapper.xml文件中配置返回结果类型,那么在Mybatis里返回结果类型有两种resultType和resultMap,那么到底在返回结果时选择哪一个呢?
首先我们要知道不管选择哪一个,都要知道resultType和resultMap是不能同时存在的。
下面我们分别来看看他们在使用上的区别。
resultType是直接表示返回类型的。
如果查询结果只是返回一个值,比如返回String或int,那么可以使用resultType指定简单类型作为输出结果。
还有一种情况就是如果数据库表的字段名和实体bean对象的属性名一样时,那么也可以直接使用resultType返回结果。
下面以查询所有学生信息为例子。
上面属性名对应的数据库表中字段名id、name、email、phone。
MyBatis在执行sql语句时,会把查询出来的字段名和resultType定义实体bean对象的属性进行一一对应,然后再把查询到的值放到实体bean对象的属性中,完成赋值操作。但如果不一样,则会查询出空值。
而resultMap则是对外部ResultMap的引用,其实上面的查询也可以用resultMap返回结果。
那么它们之间到底有什么区别呢?
resultType不需要配置,但是resultMap要配置一下,将数据库表的字段名和实体bean对象类的属性名一一对应关系,这样的话就算你的数据库的字段名和你的实体类的属性名不一样也没有关系,都会给你对应的映射出来,所以resultMap要更强大一些。
就像上面说的那样,如果查询出来数据库字段名和要封装的实体bean对象属性值不相同时,这个时候只能使用resultMap来返回结果。
还有一个和resultType不同的地方在于resultMap可以用在复杂联合查询上,而resultType不可以。
比如有一个Dept部门类,其中有一个Employee员工列表的引用,那么在查询部门Dept的时候想把其对应的Employee员工列表也要查出来的话,就必须使用resultMap来返回结果。
通过上面的比较和例子的使用,相信大家对它们的区别和使用已经掌握了。
-
打印机已连接但无法打印打印机连接正常打印没反应的解决方法打印机已连接但是无法打印什么原因
打印机不能打印的问题,还是有挺多原因的,想知道是什么原因造成的,要逐...
-
小米手机无法启动小米手机开不了机怎么办教你一招解决小米手机开不开机怎么回事求帮助
小米用户在使用过程中,可能会遇到手机开不了机的情况。这是怎么回事呢?...
-
海信电视不识别u盘apk电视无法识别u盘apk文件终极方法海信电视不识别u盘里的apk文件
近日,有用户反映自己在安装第三方软件时遇上了问题,电视识别不了apk...
-
地铁工作人员工资是多少
地铁的一线工作人员月工资差不多能在5000以上,公积金1500-25...
-
电脑一直正在启动windows怎么办电脑开机停留在启动界面怎么办电脑启动时一直停留在"正在启动windows"界面
很多时候,我们在打开电脑时,一开机,电脑进行开机启动画面就不动了,一...
- 最近发表
- 网站分类