1. 程式人生 > >Mybatis-類屬性和資料庫欄位對映方式

Mybatis-類屬性和資料庫欄位對映方式

1. 通過XML對映檔案中的resultMap
<mapper namespace="data.UserMapper">
    <resultMap type="data.User" id="userResultMap">
        <!-- 用id屬性來對映主鍵欄位 -->
        <id property="id" column="user_id"/>
        <!-- 用result屬性來對映非主鍵欄位 -->
        <result property="userName" column="user_name"
/>
</resultMap> </mapper>

2. 通過屬性配置完成對映

使用者最陌生的是通過配置屬性來完成對映,Mybatis給我們提供了一種對映方式,如果屬性的命名是遵從駝峰命名法的,資料列名遵從下劃線命名,
那麼可以使用這種方式,類似如下:

  • userName對應user_name;
  • userId對應user_id;

配置程式碼如下:

SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
Configuration configuration = new Configuration
(); configuration.setMapUnderscoreToCamelCase(true); sqlSessionFactoryBean.setConfiguration(configuration);

SpringMVC中配置方式:

在配置檔案中新增配置如下

<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

SpringBoot配置方式:

application.yml中新增配置如下

mybatis:
  configuration:
    map-underscore-to-camel-case: true
  mapperLocations: mybatis/**/*Mapper.xml
  typeAliasesPackage: com.lny


相關推薦

Mybatis-屬性資料庫對映方式

1. 通過XML對映檔案中的resultMap<mapper namespace="data.UserMapper"> <resultMap type="data.User" id="userResultMap"> <!-

MyBatis學習(四)--解決實體屬性資料庫不一致的問題

寫在前面 孤傲蒼狼的部落格:https://www.cnblogs.com/xdp-gacl/category/655890.html 程式碼中會有很多重要的註釋,請不要忽略。 前面在建立實體時,強調過一定要和資料庫列名一致。如果不一致結果是對映不到實體中的,但是資料庫和j

Mybatis中,解決資料庫名與java實體屬性名不一致的三種方式

在使用Mybatis來持久化資料庫時,有時候會碰到資料庫中表中的欄位與java實體類中屬性名不一致的情況,在這種情況下Mybatis是不能完成欄位的自動對映的。而通常情況下,資料庫及實體類是不應該被改的的。所以要在不改變資料庫以及實體類的情況下解決這個問題,下面是解決該問題

Mybatis 當實體屬性資料庫不一致時的解決方案

使用Mybatis的時候,Mybatis根據資料庫的欄位找到對應實體類的屬性,通過set方法對屬性進行注入。 我們可以對實體類的set方法進行測試,測試如下: 執行結果如下: 說明:Mybatis會根據相同的屬性和欄位名通過set方法進行注入 那

MyBatis 筆記(四)——實體屬性表字段的對映

之前的章節將的實體類屬性名和表字段名都是相同的,MyBatis 會自動去對映。那麼問題來了,如果實體類屬性名和表字段名不相同時,MyBatis 能智慧地去對映到嗎?答案是:不能。這裡用兩種解決方案: 1. 在使用 SQL 語句的時候,為每個欄位定義別名; 2

對映實體新增非資料庫後@Transient不起作用

對映如果用xml檔案的話新增非資料庫欄位沒有問題 註解的方式新增非資料庫欄位有問題 需要新增 @Transient 註解  如果新增後不能成功 原因 jar包選錯了  這裡我選擇了 java.beans所以除了錯 正確的包 import javax.persistence.

解決在springboot+mybatis+postgresql時,資料庫型別為json時,如何與mybatis進行對映

pg 資料庫中 某欄位型別為jsonJava實體中對應型別是 jsonObject   private JSONObject info;在mybatis的xml中,常規無法直接進行對映,需要自己寫一個TypeHandler,自定義一個JSONTypeHandlerPg類具體程

Scala教程(六)屬性物件

Scala教程(六)類、屬性和物件欄位 1 類(class) 1.1 定義類     Scala是一種純粹的面向物件程式語言,而又無縫地結合了命令式和函式式的程式設計風格。在面向物件的語言有

MyBatis中五種成功對映資料庫與實體屬性不一致的解決方案

在Mybatis中,當根據某欄位查詢資料庫資訊時,如果資料庫欄位名與實體類屬性名稱不一致,查詢時,會出現賦值不上的情況,值為Null。本次將給出五種方案,其中方案三、四為推薦。例如:根據學號sno查詢學生資訊1.資料庫表student欄位名稱以及型別:2.資料庫表內容:3.實

MyBatis學習筆記-03.MyBatis中五種成功對映資料庫與實體屬性不一致的解決方案

在Mybatis中,當根據某欄位查詢資料庫資訊時,如果資料庫欄位名與實體類屬性名稱不一致,查詢時,會出現賦值不上的情況,值為Null。本次將給出五種方案,其中方案三、四為推薦。例如:根據學號sno查詢學生資訊1.資料庫表student欄位名稱以及型別:2.資料庫表內容:3.實

MyBatis】解決資料庫名稱與Java實體屬性名稱不一致問題

問題描述:       有時候在專案中會遇到資料庫欄位名稱與實體類屬性名稱取得不一樣的情況,如下:      資料庫裡的資料為:       此時,如果我們查詢該表的某條資料,Proj

mybatis generator為實體生成自定義註釋(讀取資料庫的註釋新增到實體,不修改原始碼)

我們都知道mybatis generator自動生成的註釋沒什麼實際作用,而且還增加了程式碼量。如果能將註釋從資料庫中撈取到,不僅能很大程度上增加程式碼的可讀性,而且減少了後期手動加註釋的工作量。 1、首先定義註釋生成外掛 package com.cmbc.datapla

spring data jpa 框架在實體中新增非資料庫屬性

    Spring-data-jpa表實體的欄位和表的欄位是一一對應的。比如,那麼,如果我在查詢時,想在表字段的基礎上新增幾個返回的欄位,怎麼辦? 解:在實體類中新增我們想新增的欄位,並加上註解:@

MyBatis學習總結(四)——解決名與實體屬性名不相同的衝突

 在平時的開發中,我們表中的欄位名和表對應實體類的屬性名稱不一定都是完全相同的,下面來演示一下這種情況下的如何解決欄位名與實體類屬性名不相同的衝突。 一、準備演示需要使用的表和資料 CREATE TABLE orders( order_id INT PRIMA

Python中的"私有""私有屬性"

@staticmethod def Forward(): print u'開始向前進'#coding:utf-8 class Car: # 下面是靜態欄位 memo = u'車輛具有出廠合格證' def __init__(self, brand, model, sp

物件(=變數、方法=函式、方法過載、靜態成員、屬性、建構函式)

一、類 類包括:欄位(用來儲存資料)、屬性(用來保護欄位,屬性的本質是兩個函式get和set)、建構函式(用來初始化物件,給物件的每一個屬性賦值)、函式(描述物件的行為)、索引器(以索引的方式去訪問物件)。 一個類都可以包含兩種成員:欄位(Field)與方法(Method)

MyBatis入門學習教程 解決名與實體屬性名不相同的衝突

在平時的開發中,我們表中的欄位名和表對應實體類的屬性名稱不一定都是完全相同的,下面來演示一下這種情況下的如何解決欄位名與實體類屬性名不相同的衝突。 一、準備演示需要使用的表和資料 CREATE TABLE orders( order_id INT PRIMAR

mybatis開啟資料庫自動對映為java駝峰命名規則

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD C

C#查詢ACCESS資料庫時間

查詢表的所有欄位 string.Format("SELECT * FROM{0}", TableName); 查詢表中的一個欄位 在ACCESS中將欄位用CStr()轉換成字串來判斷 string.Format("SELECT* FROM {0} WHERE CStr({1})=

MySQL中DateDateTimemybatis的對應關係

MySQL中Date和DateTime欄位與mybatis的對應關係 在MySQL欄位中有Date和DateTime型別,但是java中沒有DateTime型別。 解決辦法: (1)在mybatis插入資料時只要將實體的屬性設定成Timestamp就會對應mysql的DateTime型別