現(xiàn)在流行的 ssm(spring?+ struts2 + myBatis) ?持久層的mybatis是需要配置映射器的,找了個demo連接的數(shù)據(jù)庫是MySQL?于是就修改了一下弄成了連接Oracle的
一切就緒之后跑起來 執(zhí)行插入操作的時候問題來了 ,報了一個這個錯我的表是B 字段是id ,user_name ,password ?實例類的字段是 id , userName,password,
這里有個user_name 和userName?搞了一下午弄的頭疼,后來發(fā)現(xiàn)了貓膩,
There is no getter for property named 'USER_NAME' in 'class com.bky.model.B'
代碼:
實體類 B
[java] ?view plaincopy
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
[html] ?view plaincopy
<?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.bky.dao.BMapper"?>?? ?? ??<resultMap?id="BaseResultMap"?type="com.bky.model.B"?>?? ????<id?column="ID"?property="id"?jdbcType="INTEGER"?/>?? ????<result?column="USER_NAME"?property="userName"?jdbcType="VARCHAR"?/>?? ????<result?column="PASSWORD"?property="password"?jdbcType="VARCHAR"?/>?? ??</resultMap>?? ?? ??<sql?id="Base_Column_List"?>?? ????ID,?USER_NAME,?PASSWORD?? ??</sql>?? ???? ?? ????<insert?id="insertSelective"?parameterType="com.bky.model.B"?>?? ????insert?into?B?(?USER_NAME,PASSWORD)?values(#{USER_NAME,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR})??? ????</insert>??? ????<update?id="updateByPrimaryKey"?parameterType="com.bky.model.B"?>??? ????update?B?set?USER_NAME?=?#{USER_NAME,jdbcType=VARCHAR},?PASSWORD?=?#{PASSWORD,jdbcType=VARCHAR}?where?id?=?#{id,jdbcType=INTEGER}??? ????</update>??? ????<select?id="getAll"?resultMap="BaseResultMap">?SELECT?*?FROM?B?</select>?? </mapper>?? 錯誤寫法如下
<insert id="insertSelective" parameterType="com.bky.model.B" > insert into B (?USER_NAME,PASSWORD) values(#{USER_NAME,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR})? </insert>?
我們重點關(guān)注一下這里user_name 是個表字段和 后面的#{USER_NAME,jdbcType=VARCHAR} 這里錯了,應(yīng)該 寫成#{userName,jdbcType=VARCHAR}?應(yīng)該是屬性值? 啊找的好苦啊 一下午就這樣浪費了 不過還是解決了 , 一開始百度了很多 有的人是屬性名寫錯了,有的是沒有set/get ? 總結(jié)到此分享一下 有此情況錯誤的 一般就這幾種了希望可以幫助到初學(xué)者
總結(jié)
以上是生活随笔 為你收集整理的关于myBatis的问题There is no getter for property named 'USER_NAME' in 'class com.bky.model.实例类'... 的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔 推薦給好友。