在代码编写过程中,避免不了与数据库打交道,而这最基本的就是如何把数据映射为实体类,下面介绍几种比较常用的映射方式。
一:xml文件编写映射规则

<!-- 通用查询映射结果 -->
<resultMap id="myMap" type="com.**.**.entity.User"><id column="id" property="id" /><result column="user_name" property="userName" /><result column="user_password" property="userPassword" /><result column="email" property="email" /><result column="user_age" property="userAge" /><result column="is_del" property="isDel" />
</resultMap><!-- 查询语句 -->
<select id="selectById" resultMap="myMap">select * from user where id = #{id}
</select>

这种映射形式一个resulMap绑定一个实体类,但是越往后开发,返回的数据这一个实体类不能满足的情况下,需要新建很多这种映射,这种形式显然不是很好的选择。

二:sql的 * 改编写成 A as B的形式

<select id="selectById" resultType="com.**.**.entity.User">select a.id as id,a.user_name userName,a.user_password as userPassword,a.email as email,a.user_age as userAge,a.is_del as isDel from user a where a.id = #{id}
</select>

这种写法无需任何配置,而且按需获取,且映射关系一目了然。缺点是代码编写量大。

三:mybatis框架或mybatis-plus自带的驼峰命名法映射规则

这里先讲mybatis框架的,作为现在最常用的最多人使用的持久层框架,mybatis自带的驼峰名发法更是简便了开发过程。首先需要开启这项命名规则,最常用的方式是通过配置文件修改配置参数。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><properties><property name="dialect" value="mysql"/></properties><!-- 全局参数 --><settings><!-- 使用驼峰命名法转换字段。 --><setting name="mapUnderscoreToCamelCase" value="true"/></settings>
</configuration>

开启后,实体类的属性命名就要按照驼峰命名法的规则命名,如表字段为user_name,则对应的实体类属性名应为userName,必须要严格按照这种规则编写,否则返回的数据不会对该属性赋值。

mybatis-plus作为mybatis的增强工具,只强不弱,对命名规则的也是如此。如果我们像上面一样通过配置文件开启了驼峰命名法的映射规则,那使用mybatis-plus封装的方法时不需要做任何操作,也可以达到自己编写sql语句的效果。但如果没有开启,我们只需要在实体类的属性上添加@TableField注解,指定映射关系即可。需要注意的是这里的注解方式只适用mybatis-plus封装的方法上,如果自己编写的sql语句是不会生效的。

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {@TableId(type = IdType.UUID)private String id;@TableField(value = "user_name")private String userName;@TableField(value = "user_password")private String userPassword;private String email;@TableField(value = "user_age")private Integer userAge;@TableLogic@TableField(value = "is_del")private Integer isDel;
}

Java实体类与数据库表映射关系相关推荐

  1. mybatisPlus 实体类与数据库表映射关系

    使用mybatisPlus时,会确定实体类和数据的映射关系 具体的映射方法有两种: 1.默认:采用驼峰映射规则,例如MyUserTable 对应的数据库表为 my_user_table ;  TEMy ...

  2. java实体类生成mysql表_springboot+mybatis通过实体类自动生成数据库表的方法

    前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 org.mybatis ...

  3. 根据java实体类生成创建表sql步骤

    根据java实体类生成创建表sql步骤 根据java实体类生成创建表sql语句时,方法是利用java反射+AOP注解,主要步骤如下: 1.注解类 一般在生成表的时候,需要表名.主键名.字段名,对应到注 ...

  4. 根据实体类生成数据库表

    参考文档地址:通过实体类生成数据库表_weixin_44571808的博客-CSDN博客_java实体类生成数据库表 注意springboot版本号需要比较低(没有详细测试2.6不行,2.1.11可以 ...

  5. MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结

    在此,首先说明一点任何持久性框架都需要解决一个问题,那就是Java实体类的字段一般来说基本上会与数据库表中字段不一致,那么它们是如何解决的呢?咱们以Hibernate和SpringJDBC为例说明一下 ...

  6. Springboot根据实体类生成数据库表

    springboot数据库(一)-springboot-JPA JPA:springboot -jpa:数据库的一系列的定义数据持久化的标准的体系 学习的目的是: 利用springboot实现对数据库 ...

  7. Java实体类(Dto)映射

    概述: 通常是一张表对应Java的一个实体类,但在很多时候,接口返回给前端的数据远不如此.举个栗子:在一张存放作者发布的文章的表中(生成的实体类名PO),仅仅存有用户的ID,但是后端文章列表接口中需要 ...

  8. java中对象模型与数据库中的关系模型

    实体类还需要配置到hibernate.cfg.xml中,以便Hibernate初始化实体类与数据库表的映射关系.如果只配置了映射关系,而没有配置到hibernate.cfg.xml中,Hibernat ...

  9. mysql语句生成在线_在线数据库表(sql语句)生成java实体类工具

    相信每个做java开发的读者,都接触过SQL建表语句,尤其是在项目开发初期,因为数据库是项目的基石. 在现代项目开发中,出现了许多ORM框架,通过简单的实体映射,即可实现与数据库的交互,然而我们最初设 ...

  10. FreeSql实体映射成数据库,数据库映射成实体类,指定表生成实体

    文章目录 codeList DbContext 指定表生成实体 codeList 首先codeList就是一个将实体类映射成数据库表的东西 使用方法: 1.先引入包 补充一下上图:这四个包都要安装 写 ...

最新文章

  1. Android启动过程深入解析
  2. Composer 中国全量镜像(二)
  3. Silverlight 5 beta新特性探索系列:9.视频快进快退和TextSearch对象对文字项查询
  4. [图神经网络] 图节点Node表示---GCN
  5. 报告:5G 网络切片可能会给不法分子留下漏洞!
  6. java 集合操作_Java 集合的操作 个人方法总结
  7. 列注释_技术贴 | 宏基因组分箱 (Binning)第四课——COG EC RNA注释统计
  8. LeetCode(1108)——IP 地址无效化(JavaScript)
  9. 1.1 c和c++关系
  10. IE下Ajax缓存(转载)
  11. webstorm设置中文界面
  12. c语言开发的烟花表白程序,C语言实战之浪漫烟花表白程序(2020年十二月整理).doc...
  13. 银联支付接口申请流程-傲付宝
  14. 自己写的一点福利代码(四)
  15. matlab滤波有几种形式,几种经典常用的滤波算法
  16. 江苏省计算机二级c语言题型分值,计算机二级C语言题型和评分标准
  17. 计算机与文秘专业有哪些课程,文秘专业开设的课程有哪些
  18. 简单易用,基于js或vue项目实现一次批量文件下载功能
  19. centos下安装python3
  20. 面向对象(OOP)与面向对象设计(OOD)

热门文章

  1. fanuc以太网参数设置视频_fanuc-mf系统 以太网设置方法资料
  2. 阿里巴巴java规范手册 -阿里巴巴java开发手册-java手册-最终版 官方网站
  3. 《鸟哥Linux私房菜》系列
  4. SwitchHost使用教程
  5. SwitchHost常见问题解决
  6. MMKV_浅析 - MMKV 1.1.1
  7. 西门子plc cpu228 4路模拟量输入 2路模拟量输出
  8. 高斯克吕格投影与墨卡托投影(通用横轴墨卡托、web墨卡托等)
  9. Phantomjs 生成多页PDF
  10. linux下hadoop 环境搭建