当前位置:编程学习 > JAVA >>

mybatis问题

调用代码

private SqlSessionTemplate sqlSessionTemplate;

public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
this.sqlSessionTemplate = sqlSessionTemplate;
}

@Override
public User save(User u) {
try {
sqlSessionTemplate.insert("save",u);
} catch (DataAccessException e) {
e.printStackTrace();
}
return u;
}

XML代码

<insert id="save" parameterType="userDo" keyProperty="id" useGeneratedKeys="true">
insert into
t_user(username,userpass,email,易做图,province,city,area,birthday)
values(#{username,jdbcType=VARCHAR,jdbcType=VARCHAR},#{userpass,jdbcType=VARCHAR},#{email,jdbcType=VARCHAR},#{易做图,jdbcType=VARCHAR},#{province,jdbcType=VARCHAR},#{city,jdbcType=VARCHAR},#{area,jdbcType=VARCHAR},#{birthday,jdbcType=DATE})
</insert>


报错内容是:
java.lang.ClassCastException: java.lang.Integer cannot be cast to com.vbon.mybatis.pojo.User
这个问题很纠结啊,首先是我没有做过转换,就报错了。
求大神解答

--------------------编程问答-------------------- 在线求解。。。 --------------------编程问答-------------------- 看一下你的User对象里是不是有什么属性是用int定义的,改成Integer类型 --------------------编程问答-------------------- User类

private Integer id;
private String username;
private String userpass;
private String email;
private String 易做图;
private String province;
private String city;
private String area;
private Date birthday;
--------------------编程问答-------------------- 本来今天说没事,来研究一下mybatis3的,看和ibatis2有什么区别,结果遇到这个问题。但是查询的时候没问题,哎 --------------------编程问答-------------------- <insert id="save" parameterType="userDo" keyProperty="id" useGeneratedKeys="true">

sqlSessionTemplate.insert("save",u);

insert需要的是userDo,而传入的是User
在MyBatis的配置文件里做过alias没有?

--------------------编程问答-------------------- 做过alias,userDo就是User对象 --------------------编程问答-------------------- 你是否应有spring框架,如果应有spring框架的话,要看看你dao接口返回类型应该修改成int --------------------编程问答-------------------- mybatis 你插入数据给你返回的Integer
这个Integer就是你当前插入的记录数 一般的话都会是1 只要你没有插入失败
如果你声明

<selectKey resultType="int"  keyProperty="id" > 
            select LAST_INSERT_ID() 
</selectKey> 

mybatis会给你自动填充插入后的ID到你的当前对象里
所以你程序大可以把返回值设置成Integer,然后再打印看看你的user对象,必然有Id属性了 --------------------编程问答--------------------
引用 8 楼 awl910213 的回复:
mybatis 你插入数据给你返回的Integer
这个Integer就是你当前插入的记录数 一般的话都会是1 只要你没有插入失败
如果你声明
Plain Text code?123<selectKey resultType="int"  keyProperty="id" >             select LAST_INSERT_ID() </selectK……


正解 --------------------编程问答-------------------- 请问下你用 mybatis3 写过 分页插件没 , 不是用代码生成工具写的  用的是 易做图写的 --------------------编程问答-------------------- 你是否应有spring框架,如果应有spring框架的话,要看看你dao接口返回类型应该修改成int 
补充:Java ,  Web 开发
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,