0
映射文件 employeeMapper.xml的MyBatis的XMLGregorianCalendar處理
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxxx.sample.test.dao.TestDAO">
<select id="selectEmployee" parameterType="int" resultMap="com.viasat.sample.domain.CreateDate" >
select createdate from employee where id = #{id}
</select>
</mapper>
映射接口 TestDAO.java
public interface TestDAO {
public com.viasat.sample.domain.CreateDate selectEmployee(int id);
}
POJO豆 CreateDate.java
public class CreateDate {
private XMLGregorianCalendar createdate;
public XMLGregorianCalendar getCreatedate() {
return createdate;
}
public void setCreatedate(XMLGregorianCalendar createdate) {
this.createdate = createdate;
}
}
主要方法 MainClass。 java的
public class MainClass {
public static void main(String[] args) {
SqlSession session = sqlSessionFactory.openSession();
try {
TestDAO tm = session.getMapper(TestDAO.class);
Map emp = tm.selectEmployee(123);
} catch (Exception e) {
e.printStackTrace();
}
finally {
session.close();
}
}
}
問題:從檢索到的日期值(CREATEDATE)不是映射/在CREATEDATE豆設置的XMLGregorianCalendar類型CREATEDATE。如果創建的數據類型是Date,它會正常工作。簡要說明DATE數據類型未在Mybatis的XMLGregorianCalendar類型中設置。