当我们使用注解开发时有时会遇到数据库字段名与实体类属性名不一致的问题。xml方式开发可以通过结果集映射的方式解决,那注解方式开发要怎么解决呢?

注解解决方式:

@Results()注解

Results注解中有两个常用的参数,一个是id,另一个是value。

id:这个参数的主要作用在于唯一标记这个Results注解,如果接口中的其他抽象方法也需要通过result注解来解决属性名和数据库字段名不一致问题,那么重新写一个Results注解就太麻烦了,这时我们就可以通过@ResultMap()注解中传入Results注解的参数id来引用Results注解中的内容。举例:

public interface UserMapper {
@Select("select * from user")
@Results(id="aaa",value={
@Result(id=true,column = "id",property = "userId"),
@Result(column = "name",property = "userName"),
@Result(column = "age",property = "userAge")
})
List<User> getUsers(); @Select("select count(id) from user")
@ResultMap(value={"aaa"})
int findTotalUser();
}

代码示例

value:这个参数用于建立实体类与数据库表的映射关系,其中可以填写多个@Result注解,用来将实体类的属性名和数据库字段名一一对应。需要注意如果是主键字段,@Result注解中需要设置id=true。具体例子参考上边提供的代码。

mybatis——解决属性名和数据库字段名不一致问题(注解方式)的更多相关文章

  1. mybatis——解决属性名和数据库字段名不一致问题

    首先说一下,我的数据库名字叫mybatis,里边有一张user表,表中有三个字段,id.name.pwd:然后实体类中对应三个属性id.name.password(id和name跟数据库字段名一致,但 ...

  2. Mybatis——实体类属性名和数据库字段名不同时的解决方案

    数据库的字段: 对应的实体类: 方案一: 在XML映射文件中使用的resultMap,优点:可以被重复使用. <resultMap id="BaseResultMap" ty ...

  3. Mybatis中resultMap的作用-解决实体类属性名和数据库字段不一致

    解决实体类属性名和数据库字段不一致

  4. sql server数据库字段名要注意不能叫file

    sql server数据库字段名要注意不能叫file 如java 中  private string  file,这是sql 的关键字

  5. swoft orm中的坑(针对实体类的属性名称和数据库字段不相等)

    最近在用swoft的orm,发现了一些问题: 首先看下实体类的定义 它的属性名称和所映射的数据库字段名不一致,这个就会导致蛋疼的问题,首先,在我们使用orm的时候,应该使用哪个字段? 我直接说结论,在 ...

  6. Oracle—数据库名、数据库实例名、数据库域名、数据库服务名的区别

    Oracle-数据库名.数据库实例名.数据库域名.数据库服务名的区别 一.数据库名 1.什么是数据库名       数据库名就是一个数据库的标识,就像人的身份证号一样.他用参数DB_NAME表示,如果 ...

  7. 获取SQL数据库中的数据库名、所有表名、所有字段名、列描述

    1.获取所有数据库名:    (1).Select Name FROM Master.dbo.SysDatabases orDER BY Name 2.获取所有表名:    (1).Select Na ...

  8. SQLServer中获取所有数据库名、所有表名、所有字段名的SQL语句

    ----1. 获取所有的数据库名----- SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME -----2. 获取所有的表名------ S ...

  9. oracle 数据库字段名与实体类字段名称不匹配的处理方法

    之前公司一直都使用sql server 即使数据库字段名称与实体类名称不相同 可以使用诸如: select id as userId from tb_user 这种写法,可换到了oracle 之后坑爹 ...

随机推荐

  1. OpenSSL相关漏洞

    目录 心脏出血漏洞(CVE-2014-0160) OpenSSL CCS注入漏洞(CVE-2014-0224) OpenSSL FREAK Attack漏洞(CVE-2015-0204) TLS/SS ...

  2. 修改composer配置(以修改cache-files-maxsize为例)修改composer拉取包出现"Content-Length mismatch"的问题

    1.composer config -l -g查看composer配置信息 2.修改配置:composer config --global cache-files-maxsize 1024MiB

  3. 注解配置定时器Scheduling

    注解配置定时器配置 package com.demo; import org.springframework.context.annotation.Configuration; import org. ...

  4. VMware-viclient-all

    VMware-viclient-all https://my.vmware.com/web/vmware/details?productId=491&downloadGroup=ESXI60U ...

  5. JavaScript 原始值与包装对象

    前言 随着 JavaScript 越来越流行,越来越多地开发者开始接触并使用 JavaScript. 同时我也发现,有不少开发者对于 JavaScript 最基本的原始值和包装对象都没有很清晰的理解. ...

  6. 在Visual Studio 中使用git——文件管理-上(四)

    在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...

  7. Windows进程间通讯(IPC)----信号量

    线程同步内核对象 操作系统进行进程间同步是利用信号量机制.对于windows系统而言,可以利用一些内核对象进行线程同步,因为这些内核对象可以命名并且属于系统内核,所以可以支持不同进程间的线程同步进而实 ...

  8. IIS部署.Net5全流程

    介绍 Internet Information Services (IIS) 是一种灵活.安全且可管理的 Web 服务器,用于托管 Web 应用(包括 ASP.NET Core).虽然我们的程序可以跨 ...

  9. mysql 格式化 取日期

  10. [刷题] 279 Perfect Squares

    要求 给出一个正整数n,寻找最少的完全平方数,使他们的和为n 示例 n = 12 12 = 4 + 4 + 4 输出:3 边界 是否可能无解 思路 贪心:12=9+1+1+1,无法得到最优解 图论:从 ...