W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
需要?mybatis-plus
?版本 >= ?3.0.7
?
?param
?參數(shù)名要么叫?ew
?,要么加上注解?@Param(Constants.WRAPPER)
?
使用?${ew.customSqlSegment}
? 不支持 ?Wrapper
內(nèi)的entity生成where語句
由于?kotlin
?相比于?java
?多了數(shù)據(jù)對象(?data class
?),在未說明情況下可能會混用。建議按照以下形式定義持久化對象
@TableName("sys_user")
class User {
@TableId(type = IdType.AUTO)
var id: Int? = null
@TableField("username")
var name: String? = null
var roleId: Int? = null
}
注意:這里的?TableId
?及?TableField
?并非必要,只是為了展示?Mybatis-Plus
?中的?annotation
?使用
這里所有成員都需要定義為可空類型(??
?),并賦予?null
?的初始值,方便我們在以下場景中使用(類似java中的?updateSelective
?)
val wrapper = KtUpdateWrapper(User::class.java).eq(User::id, 2)
val newRecord = User()
newRecord.name = "newName"
userMapper!!.update(newRecord, wrapper)
不建議使用?data class
?及全參數(shù)構(gòu)造方法,這樣我們會寫很多不必要的?null
?來構(gòu)造一個空對象
@Select("select * from mysql_data ${ew.customSqlSegment}")
List<MysqlData> getAll(@Param(Constants.WRAPPER) Wrapper wrapper);
List<MysqlData> getAll(Wrapper ew);
<select id="getAll" resultType="MysqlData">
SELECT * FROM mysql_data ${ew.customSqlSegment}
</select>
kotlin 可以使用 ?QueryWrapper
和 ?UpdateWrapper
但無法使用 ?LambdaQueryWrapper
和 ?LambdaUpdateWrapper
?
如果想使用 lambda 方式的 wrapper 請使用 ?KtQueryWrapper
和 ?KtUpdateWrapper
val queryWrapper = KtQueryWrapper(User()).eq(User::name, "sss").eq(User::roleId, "sss2")
userMapper!!.selectList(queryWrapper)
val updateConditionWrapper = KtUpdateWrapper(User()).eq(User::name, "sss").eq(User::roleId, "sss2")
val updateRecord = User()
updateRecord.name = "newName"
userMapper!!.update(updateRecord, updateConditionWrapper)
val updateRecord = User()
updateRecord.id = 2
updateRecord.name = "haha"
userMapper.updateById(updateRecord)
// 區(qū)分:
// 鏈?zhǔn)秸{(diào)用 普通
UpdateChainWrapper<T> update();
// 鏈?zhǔn)秸{(diào)用 lambda 式。注意:不支持 Kotlin
LambdaUpdateChainWrapper<T> lambdaUpdate();
// 等價示例:
query().eq("id", value).one();
lambdaQuery().eq(Entity::getId, value).one();
// 等價示例:
update().eq("id", value).remove();
lambdaUpdate().eq(Entity::getId, value).remove();
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: