请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于mybatis返回类型问题

老师您好,新年快乐,

你的课程很好很全面,对我帮助很大,谢谢。我遇到一个问题:对应于你的project,我自己加了一些类来进行练习,我加了一个类似于shopCategory的类叫做zone.

在entity里面:

public class Zone {

private String zoneId;
private String zoneName;

public String getZoneId() {
	return zoneId;
}
public void setZoneId(String zoneId) {
	this.zoneId = zoneId;
}
public String getZoneName() {
	return zoneName;
}
public void setZoneName(String zoneName) {
	this.zoneName = zoneName;
}

}

在DAO里面:

package com.imooc.o2o.dao;

import java.util.List;

import com.imooc.o2o.entity.Zone;

public interface ZoneDao {

List<Zone> queryZone();
int insertZone(Zone zone);

}
在ZoneDao.xml:

<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="com.imooc.o2o.dao.ZoneDao">
<select id="queryZone" resultType="com.imooc.o2o.entity.Zone">
	SELECT BIN_TO_UUID(zone_id), zone_name
	FROM tb_zone
	ORDER BY zone_name
</select>
<insert id="insertZone" keyProperty="zoneId" keyColumn="zone_id">
	INSERT INTO
	tb_zone(zone_id, zone_name)
	VALUES
	(UUID_TO_BIN(#{zoneId}),#{zoneName})
</insert>

< /mapper>

Zone.zoneId是UUID,Zone.zoneName 是string的格式。 我用insertZone都可以把string形式的UUID存入到zoneId里面。并且在mysqll里面看到存好的转换为byte形式的数据。但是当我用select的时候,我得到List< Zone>, zone.get(0).zoneId 的结果是null, zoneName是可以正常得到的。 我如果手写代码将zoneId变为byte[]输出在List里面再转化为UUID格式是行得通的。但是我又尝试做了这个在ZoneDao.xml里面加上:
< select id=“queryZoneIdByName” resultType=“String”>
SELECT BIN_TO_UUID(zone_id)
FROM tb_zone
WHERE #{name}=zone_name
< /select>
这样的select是可以直接返回String格式的UUID的。

所以我现在搞不懂,为什么我返回List< Zone>时候不能把String格式的zoneId顺利返回呢。 我查找了mybatis的一些返回UUID的例子,多数也是给了一个zone_name然后返回单一的UUID,但是我希望的是UUID顺利返回在List 的Zone里面。 谢谢老师。

正在回答

1回答

同学好,根据同学的描述,感觉就是mybatis在批量处理BIN_TO_UUID的数据的获取的时候做得不够完善,这个具体原因还是需要在mybatis源码设置断点调试一下。建议同学先以byte[]的形式取出,然后在代码里做下转换。

感谢同学,也祝愿同学新春快乐:)

0 回复 有任何疑惑可以回复我~
  • 提问者 xlljoy #1
    谢谢老师, 我现在就是写了一个zone的wrapper function 在java里面对格式进行转换了。也行得通,但是我总觉得mysql和mybits的组合应该让代码更简洁。以后有机会我会查看一些mybits源码,如果找到答案,我会回复在这里的。万分感谢,教程真的帮助很大,新年快乐。
    回复 有任何疑惑可以回复我~ 2020-01-24 02:34:23
  • 翔仔 回复 提问者 xlljoy #2
    同学好,是的哈,mybatis了解后,可以写一些扩展来丰富它的功能:)感谢同学的支持
    回复 有任何疑惑可以回复我~ 2020-01-24 23:20:56
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号