老师您好,新年快乐,
你的课程很好很全面,对我帮助很大,谢谢。我遇到一个问题:对应于你的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:
<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里面。 谢谢老师。
SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需
了解课程