我在ibatis中有如下配置:
这是一个PO:
/**
* 用户基本信息
* @author Rao
* @Date 2009-10-04
* @Table (mwweb.userinfo)
*/
public class UserinfoPo {
private String uId; //用户Id
private String uName; //用户登录名称
private String uNickname; //用户昵称
private String uPass; //用户密码
private String uEmail; //用户Email
private String uBirth; //用户出生日期
private int uSex; //用户性别(1男,2女)
private String uAddress; //用户地址
public String getUName() {
return uName;
}
public void setUName(String name) {
uName = name;
}
public String getUPass() {
return uPass;
}
public void setUPass(String pass) {
uPass = pass;
}
public String getUEmail() {
return uEmail;
}
public void setUEmail(String email) {
uEmail = email;
}
public String getUBirth() {
return uBirth;
}
public void setUBirth(String birth) {
uBirth = birth;
}
public int getUSex() {
return uSex;
}
public void setUSex(int sex) {
uSex = sex;
}
public String getUAddress() {
return uAddress;
}
public void setUAddress(String address) {
uAddress = address;
}
public String getUNickname() {
return uNickname;
}
public void setUNickname(String nickname) {
uNickname = nickname;
}
public String getUId() {
return uId;
}
public void setUId(String id) {
uId = id;
}
}
这是sqlMap中的userinfo.xml配置文件:
<!-- 新增用户 -->
<insert id="insertUserinfo" parameterClass="MWWeb.bbs.po.UserinfoPo">
<![CDATA[
INSERT INTO userinfo(
uId,
uName,
uNickname,
uPass,
uEmail,
uBirth,
uSex,
uAddress
)
values (
#uId:VARCHAR#,
#uName:VARCHAR#,
#uNickname:VARCHAR#,
#uPass:VARCHAR#,
#uEmail:VARCHAR#,
#uBirth:VARCHAR#,
#uSex:INT#,
#uAddress:VARCHAR#,
) ]]>
</insert>
我部署好了启动tomcat时出现了这样的错误:
There is no READABLE property named 'uId' in class 'MWWeb.bbs.po.UserinfoPo'
这是什么问题呢,我找了好久都没有解决。
希望各位达人能够给与指教,在下实在是感激不尽
问题补充:
我又重新部署了,不是没有编译,部署了旧的.class文件
[此问题的推荐答案]
你要注意javabean的规范,首字母不要大写,第二个字母也不要大写
为 JavaBean 创建属性时,必须牢记:缩略语通常被视为一个独立的单词,而不是单个字母。
例如,URL 对应的属性名应该用 url,相应的 getUrl()/setUrl(),所以 ID 还是用 id 作为属性吧,相应的 getId()/setId()。
规范中另一个特别的地方就是,第二个字母为大写的属性名要区别对待。
如果属性名的第二个字母是大写的,那么该属性名直接用作 getter/setter 方法中 get/set 的后部分,就是说大小写不变。
总的来说就是不符合javaBean规范了! P_CARD_ID 这样的也不行!
|