您好,登錄后才能下訂單哦!
在 MyBatis 中優雅地處理枚舉類型,可以通過以下幾個步驟實現:
public enum UserRole {
ADMIN(1, "管理員"),
USER(2, "普通用戶");
private int code;
private String description;
UserRole(int code, String description) {
this.code = code;
this.description = description;
}
public int getCode() {
return code;
}
public String getDescription() {
return description;
}
public static UserRole fromCode(int code) {
for (UserRole role : values()) {
if (role.getCode() == code) {
return role;
}
}
throw new IllegalArgumentException("Invalid UserRole code: " + code);
}
}
resultMap
將數據庫查詢結果映射到枚舉類型:<resultMap id="userResultMap" type="com.example.User">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="password" column="password"/>
<result property="role" column="role_code" javaType="com.example.UserRole" jdbcType="INTEGER" />
</resultMap>
這里,我們將數據庫中的 role_code
列映射到 UserRole
枚舉類型。
List<User> findAllUsers();
resultMap
將查詢結果映射到 User
實體類:<select id="findAllUsers" resultMap="userResultMap">
SELECT id, username, password, role_code FROM users
</select>
UserRole.fromCode()
方法將 role_code
轉換為 UserRole
枚舉類型:List<User> users = userMapper.findAllUsers();
for (User user : users) {
UserRole role = UserRole.fromCode(user.getRole());
System.out.println("User: " + user.getUsername() + ", Role: " + role.getDescription());
}
通過以上步驟,我們可以在 MyBatis 中優雅地處理枚舉類型。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。