ssm+mybatis无法给带有下划线属性赋值问题,无法获取数据库带下划线的字段值

摘要:
例如,数据库字段Parent_ID,查询后将转换为parentid,然后实体类将匹配相应的字段。因为实体类中有下划线,所以它不匹配。如果不想更改实体类,建议使用resultMap。
1、配置问题

<!-- 是否开启自动驼峰命名规则(camel case)映射, -->

<setting name="mapUnderscoreToCamelCase" value="true"/>
或者
//开启驼峰映射
 bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
mybatis配置文件设置了这项后,查询出来的字段如果带下划线,那么就会去掉下划线,然后采用java驼峰规则。比如数据库字段Parent_id,那么查询出来后,会转为parentid,然后去实体类匹配对应的字段。 因为你实体类里有下划线,所以匹配不上。要么采用resultMap 要么禁用掉驼峰规则(不建议禁用)。如果不想改实体类的话,建议采用resultMap。

2、增加set方法转换值的方式

原实体类
    public class user {  
      private String user_name;  
      private Striing pass_word;  
      
      
      public String getPass_word(){  
           return pass_word;  
      }  
      public void setPass_word(String pass_word){  
           this.pass_word=pass_word;  
      }  
      
    }  
原sql
select user_name,pass_word from user;
这句sql在数据库可以查到数据,但是使用mybatis的实体类查询就查不到了。

解决方法

在实体类中增加以下两个set方法并把sql改为
select user_name as username,pass_word as password from user;
使用实体类查询数据库实际上就是一个set的过程只需要把每个属性增加一个set方法就好了(这个还行吧)
    public void setUsernaem(String user_name){  
          this.user_name=user_name;  
     }  
     public void setPassword(String pass_word){  
          this.pass_word=pass_word;  
     }  
 
 然后查询:
//还是可以查询全部数据的

select
* from user order by id asc;
 
ssm+mybatis无法给带有下划线属性赋值问题,无法获取数据库带下划线的字段值第1张

  

免责声明:文章转载自《ssm+mybatis无法给带有下划线属性赋值问题,无法获取数据库带下划线的字段值》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇字节跳动基于Apache Hudi构建EB级数据湖实践FoxPro 数据库文件及记录命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

websql的添加和查询

openDatabase 我们可以使用这样简单的一条语句,创建或打开一个本地的数据库对象 vardb =openDatabase('testDB','1.0','Test DB',2*1024*1024); 复制 openDatabase接收五个参数: 数据库名字 数据库版本号 显示名字 数据库保存数据的大小(以字节为单位 ) 回调函数(非必须)...

关于nodejs中遇到mysql默认8小时连接断开机制的终极简单解决方案

由于mysql默认8小时连接无访问,就会断开.为此查了一下资料,有同种比较简单的解决方案: 1. 增加 MySQL 的 wait_timeout 属性的值。  修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait 8hours in idle status.  wait_tim...

Databricks 第5篇:Databricks文件系统(DBFS)

Databricks 文件系统 (DBFS,Databricks File System) 是一个装载到 Azure Databricks 工作区的分布式文件系统,可以在 Azure Databricks 群集上使用。 一个存储对象是一个具有特定格式的文件,不同的格式具有不同的读取和写入的机制。 DBFS 是基于可缩放对象存储的抽象,可以根据用户的需要动态...

在lua的string库和正则表达式

一.前提要了解一下lua 的string几个方法 1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,... 2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.len(s):返回字符串的长度. string.lower(s):变小写. string.upper(s):变大写....

【Oracle】CentOS7/CentOS8命令行重启Oracle 11G R2

写在前面 按照读者朋友的要求写了一篇《【Oracle】CentOS7/CentOS8命令行安装Oracle 11G R2》,由于读者完全是按照我的安装方式安装的Oracle数据库,也是将Oracle数据库安装在了CentOS 8虚拟机中,安装成功后,便关闭了虚拟机,等重新开启虚拟机时,Oracle数据库并没有自动启动,此时,需要我们重新启动Oracle数据...

RMAN数据库恢复之控制文件和参数文件恢复

一、控制文件的恢复1、查询控制文件的路径 SQL> SELECT * FROM V$CONTROLFILE; STATUS NAME IS_RECOVERY_DEST_FILE BLOCK_SIZE FILE_SIZE_BLKS ------- ---------------------------------------------------...