关于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
- <?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>
我们重点关注一下这里user_name 是个表字段和
后面的#{USER_NAME,jdbcType=VARCHAR} 这里错了,应该
写成#{userName,jdbcType=VARCHAR} 应该是属性值
啊找的好苦啊 一下午就这样浪费了 不过还是解决了 ,
一开始百度了很多 有的人是属性名写错了,有的是没有set/get
总结到此分享一下 有此情况错误的 一般就这几种了希望可以帮助到初学者
关于myBatis的问题There is no getter for property named 'USER_NAME' in 'class com.bky.model.实例类'的更多相关文章
- Mybatis问题:There is no getter for property named 'unitId' in 'class java.lang.String'
Mybatis遇到的问题 问题: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.re ...
- mybatis 错误: There is no getter for property named '*' in 'class java.lang.String解决
现象: mybatis mapper.xml 的sql里如果直接使用了想要传入的变量,比如: <select id="selectXx" resultType="i ...
- mybatis异常:There is no getter for property named 'xxx' in 'xxx'
在使用mybatis查询的时候出现了下面的异常: org.apache.ibatis.reflection.ReflectionException: There is no getter for pr ...
- Mybatis报错: There is no getter for property named xxx
在mapper文件中函数的形参上加上注解. 例如: 出现了如下错误:核心错误提示就是There is no getter for property named xxx ### Error qu ...
- mybatis错误:There is no getter for property named 'delegate' in 'class com.sun.proxy.$Proxy某某'
错误描述: There is no getter for property named 'delegate' in 'class com.sun.proxy.$Proxy32' 错误原因: 1.你有多 ...
- mybatis报错,There is no getter for property named 'templateName' in 'class
There is no getter for property named 'templateName' in 'class 主要原因是因为mapper.xml 的语句有错误,导致在bean里找不到相 ...
- Mybatis 报错 There is no getter for property named '***' in 'class java.lang.String'
在mapper.xml中 , 如果单参数是String类型 , 且在sql语句中对参数进行了判断 , 如下 when 中的判断 , 如果出现 if 判断也是一样的.都需要把判断中的参数用 _param ...
- There is no getter for property named 'userSpAndSp' in 'class com.uauth.beans.UserSpAndSp'
mybatis 报错There is no getter for property named 'userSpAndSp' in 'class com.uauth.beans.UserSpAndSp' ...
- There is no getter for property named 'username' in 'class Model1.User'-----报错解决
There is no getter for property named 'username' in 'class Model1.User' -----Model Model1.User'中没有名为 ...
随机推荐
- 常见四大类型视频接线DP、HDMI、DVI、VGA的比较
如今是新的“视”界,生活中总与各种屏幕打交道,难免会遇到选择视频接线的问题,要想搞清楚这点,我们只要通过了解现今常用的几种视频接线就会有个大致的认识. 281VGA.DVI.HDMI三种视频信号接 ...
- java基础31 List集合下的Vector集合
单例集合体系: ---------| collection 单例集合的根接口--------------| List 如果实现了list接口的集合类,具备的特点:有序,可重复 注:集合 ...
- 窗口启用/禁用功能函数EnableWindow的使用
在非MFC环境中如何使控件或者窗口禁用呢?起初是想通过发送消息来实现,但找来找去都木有找到控件禁用的消息(也是是博主木有找到的缘故),所以只能另辟蹊径,使用 EnableWindow这个函数, 该函数 ...
- git —— 多人协作(远程库操作)
1.查看远程库信息 $ git remote 2.查看详细远程库信息 $ git remote -v 3.推送分支 $ git push origin 分支名 4.抓取分支 $ git checkou ...
- VFS,super_block,inode,dentry—结构体图解
总结: VFS只存在于内存中,它在系统启动时被创建,系统关闭时注销. VFS的作用就是屏蔽各类文件系统的差异,给用户.应用程序.甚至Linux其他管理模块提供统一的接口集合. 管理VFS数据结构的组成 ...
- Shell学习笔记:<<EOF子命令
在shell编程中,“EOF”通常与“<<”结合使用,“<<EOF”表示后续的输入作为子命令或子shell的输入,直到遇到“EOF”,再次返回到主调用shell,可将其理解为分 ...
- MySQL权限问题
1.修改MySQL用户密码 .先来看一个PASSWORD()函数,MYSQL使用MD5加密 SELECT PASSWORD(‘root’); .使用mysql数据库,查看用户表 USE mysql; ...
- C语言-删除注释
C语言中的注释,不嵌套,一律使用/* */的形式.不过双引号中的/* */则不能算是注释. 以下是正确的代码 /* * ===================================== ...
- 如何解决vuex因浏览器刷新数据消失,保持数据持久化问题?
vuex的一个全局状态管理的插件,但是在浏览器刷新的时候,内存中的state会释放.通常的解决办法就是用本地存储的方式保存数据,然后再vuex初始化的时候再赋值给state,此过程有点麻烦.因此可以使 ...
- kvm图形化管理工具
1丶windows环境下载安装以及运行xming软件 https://xming.en.softonic.com/ 链接:https://pan.baidu.com/s/1wMb2pK4WfCilS8 ...