Java实体类与数据库表映射关系
在代碼編寫過程中,避免不了與數據庫打交道,而這最基本的就是如何把數據映射為實體類,下面介紹幾種比較常用的映射方式。
一:xml文件編寫映射規則
這種映射形式一個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实体类与数据库表映射关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新计算机主板参数,电脑主板参数知识
- 下一篇: java映射的概念_Java之路:映射(