目錄
mybatis操作的基本user物件結構如下:
@data
@alias(value = "user")
public class user implements serializable
其中***字段對應的型別為***enum列舉型別,因此同時設定了如下的typehandler,從而在前端傳入引數和從資料庫中取值時進行自動的名稱轉換。
@mappedjdbctypes(jdbctype.integer)
@mappedtypes(value = ***enum.class)
public class ***typehandler extends basetypehandler
/*** 通過列名讀取性別
*/@override
public ***enum getnullableresult(resultset resultset, string s) throws sqlexception
return ***enum.getenumbyid(***);
}/**
* 通過下標讀取性別
*/@override
public ***enum getnullableresult(resultset resultset, int i) throws sqlexception
return ***enum.getenumbyid(***);
}/**
* 通過儲存過程讀取性別
*/@override
public ***enum getnullableresult(callablestatement callablestatement, int i) throws www.cppcns.comsqlexception
return ***enum.getenumbyid(***);}}
下面在使用axios post請求來更新使用者資訊,請求的json引數如下:
其中由於***欄位的列舉型別,因此這裡將***根據select得到的option來轉換為了列舉中的id對應的值。也就是:
1: male
2: famale
但在發出請求之後,服務端日誌**現如下的問題:
at [source: (pushb程式設計客棧ackinputstream); line: 1, column: 40] (through reference chain: cn.zyt.springbootlea"***"])]
對於該問題,可以使用列舉型別的desc來作為引數傳遞。當使用如下desc屬性對映時,將json請求引數改成如下就可以解析成功不報錯:
此時對應的***字段選擇select標籤如下:
***:
male
female
同時注意:enum欄位***對應的資料庫列的設定中,該列的資料型別為int,而不能為tinyint。tinyint資料型別對應於j**a中的boolean,1表示true,0表示false。
解決Mybatis中result標籤識別不了的情況
目錄 有個user類 在mybatis result標籤中這樣對映 這是就會發現proper程式設計客棧ty name 這個報紅 這是因為大寫不識別的原因,大寫開頭 它會變成 l 將name 重新www.cppcns.com寫成name就可以 id 和 re 都將乙個列的值對映到乙個簡單資料型別 字...
解決mybatis中order by排序無效問題
1 將傳入的資料都當成乙個字串,會對自動傳入的資料加乙個雙引號。如 order by 如果傳入的值是111,那麼解析成sql時的值為order by 111 如果傳入的值是i程式設計客棧d,則解析成的sql為order by id 2 將傳入的資料直接顯示生成在sql中。如 order by 如果傳...
C中關鍵字enum 列舉 精巧的用法
列舉在c c c 中,是乙個被命名的整型常數的集合,列舉在日常生活中很常見。例如表示星期的sunday,monday,tuesday,wednesday,thursday,friday,saturday,就是乙個列舉。列舉型別的使用方法 一般的定義方式如下 enum enum type name e...