mybatis——解决属性名和数据库字段名不一致问题(注解方式)
当我们使用注解开发时有时会遇到数据库字段名与实体类属性名不一致的问题。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——解决属性名和数据库字段名不一致问题(注解方式)的更多相关文章
- mybatis——解决属性名和数据库字段名不一致问题
首先说一下,我的数据库名字叫mybatis,里边有一张user表,表中有三个字段,id.name.pwd:然后实体类中对应三个属性id.name.password(id和name跟数据库字段名一致,但 ...
- Mybatis——实体类属性名和数据库字段名不同时的解决方案
数据库的字段: 对应的实体类: 方案一: 在XML映射文件中使用的resultMap,优点:可以被重复使用. <resultMap id="BaseResultMap" ty ...
- Mybatis中resultMap的作用-解决实体类属性名和数据库字段不一致
解决实体类属性名和数据库字段不一致
- sql server数据库字段名要注意不能叫file
sql server数据库字段名要注意不能叫file 如java 中 private string file,这是sql 的关键字
- swoft orm中的坑(针对实体类的属性名称和数据库字段不相等)
最近在用swoft的orm,发现了一些问题: 首先看下实体类的定义 它的属性名称和所映射的数据库字段名不一致,这个就会导致蛋疼的问题,首先,在我们使用orm的时候,应该使用哪个字段? 我直接说结论,在 ...
- Oracle—数据库名、数据库实例名、数据库域名、数据库服务名的区别
Oracle-数据库名.数据库实例名.数据库域名.数据库服务名的区别 一.数据库名 1.什么是数据库名 数据库名就是一个数据库的标识,就像人的身份证号一样.他用参数DB_NAME表示,如果 ...
- 获取SQL数据库中的数据库名、所有表名、所有字段名、列描述
1.获取所有数据库名: (1).Select Name FROM Master.dbo.SysDatabases orDER BY Name 2.获取所有表名: (1).Select Na ...
- SQLServer中获取所有数据库名、所有表名、所有字段名的SQL语句
----1. 获取所有的数据库名----- SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME -----2. 获取所有的表名------ S ...
- oracle 数据库字段名与实体类字段名称不匹配的处理方法
之前公司一直都使用sql server 即使数据库字段名称与实体类名称不相同 可以使用诸如: select id as userId from tb_user 这种写法,可换到了oracle 之后坑爹 ...
随机推荐
- Windowsw核心编程 第13章 Windows内存结构
第1 3章 Wi n d o w s的内存结构 13.1 进程的虚拟地址空间 每个进程都被赋予它自己的虚拟地址空间.对于 3 2位进程来说,这个地址空间是4 G B,因为3 2位指针可以拥有从0 x ...
- 【python】Leetcode每日一题-二叉搜索迭代器
[python]Leetcode每日一题-二叉搜索迭代器 [题目描述] 实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(T ...
- 11.qml-通过方法来加载组件、字符串方式加载组件
在上章,我们学习了10.qml-组件.Loader.Component介绍. 本章我们继续来学习组件的其它创建方式. 1.调用Function来加载和移除组件 之前我们是使用Loader对象来实现加载 ...
- java设计模式之单例模式你真的会了吗?(懒汉式篇)
java设计模式之单例模式你真的会了吗?(懒汉式篇) 一.什么是单例模式? 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供 ...
- 调用免费API查询全年工作日、周末、法定节假日、节假日调休补班数据
前言 日常开发中,难免会用到判断今天是工作日.周末.法定节假日.节假日调休补班做一些业务处理,例如:仅在上班时间给用户推送消息.本文记录调用免费API查询全年工作日.周末.法定节假日.节假日调休补班数 ...
- 简单对比vue2.x与vue3.x响应式及新功能
简单对比vue2.x与vue3.x响应式 对响应方式来讲:Vue3.x 将使用Proxy ,取代Vue2.x 版本的 Object.defineProperty. 为何要将Object.defineP ...
- ThreadLocal内存溢出代码演示和原因分析!
ThreadLocal 翻译成中文是线程本地变量的意思,也就是说它是线程中的私有变量,每个线程只能操作自己的私有变量,所以不会造成线程不安全的问题. 线程不安全是指,多个线程在同一时刻对同一个全局 ...
- split命令_Linux split命令:切割(拆分)文件
<Linux就该这么学>是一本基于最新Linux系统编写的入门必读书籍,内容面向零基础读者,由浅入深渐进式教学,销量保持国内第一,年销售量预期超过10万本.点此免费在线阅读. 15 分钟之 ...
- Mysql数据库基础增删改查常用语句命令
Mysql增删改查常用语句命令 一.增删改查语句总览 创建: create(创建数据库) 增:insert(插入表数据) 删:drop.delete(删除表.删除表数据) 改:update.alter ...
- Linux_配置认证访问FTP服务
[RHEL8]-FTPserver:[Centos8]-FTPclient !!!测试环境我们首关闭防火墙和selinux(FTPserver和FTPclient都需要) [root@localhos ...