关于myBatis的问题There is no getter for property named 'USER_NAME' in 'class com.bky.model.实例类'

现在流行的 ssm(spring + struts2 + myBatis)  持久层的mybatis是需要配置映射器的,找了个demo连接的数据库是mysql 于是就修改了一下弄成了连接oracle的

一切就绪之后跑起来 执行插入操作的时候问题来了 ,报了一个这个错我的表是B 字段是id ,user_name ,password  实例类的字段是 id , userName,password,

这里有个user_name 和userName 搞了一下午弄的头疼,后来发现了猫腻,

There is no getter for property named 'USER_NAME' in 'class com.bky.model.B'

代码:

实体类 B


package com.bky.model;

public class B {
    private Long id;

    private String userName;
    
    private String password;

    public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id == null ? null : id;
	}
	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password == null ? null : password.trim();
	}
}



映射器.xml







  
    
    
    
  

  
    ID, USER_NAME, PASSWORD
  
  

	
	insert into B ( USER_NAME,PASSWORD) values(#{USER_NAME,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR}) 
	 
	 
	update B set USER_NAME = #{USER_NAME,jdbcType=VARCHAR}, PASSWORD = #{PASSWORD,jdbcType=VARCHAR} where id = #{id,jdbcType=INTEGER} 
	 
	






错误写法如下


insert into B ( USER_NAME,PASSWORD) values(#{USER_NAME,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR}) 
 

我们重点关注一下这里user_name 是个表字段和
后面的#{USER_NAME,jdbcType=VARCHAR} 这里错了应该
写成#{userName,jdbcType=VARCHAR}
应该是属性值 
啊找的好苦啊 一下午就这样浪费了 不过还是解决了 ,
一开始百度了很多 有的人是属性名写错了,有的是没有set/get  
总结到此分享一下 有此情况错误的 一般就这几种了希望可以帮助到初学者

你可能感兴趣的:(java,mybatis,ssm)