乙巳🐍年

acc8226 的博客

Compose Multiplatform 框架 | JetBrains: Developer Tools for Professionals and Teams
https://www.jetbrains.com/zh-cn/lp/compose-mpp/

Android 开发者 | Android Developers
https://developer.android.google.cn/?hl=zh-cn

Kotlin 和 Android | Android 开发者 | Android Developers
https://developer.android.google.cn/kotlin?hl=zh-cn

Android Jetpack 开发资源 - Android 开发者 | Android Developers
https://developer.android.google.cn/jetpack?hl=zh-cn

阅读全文 »

insert 插入的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<script>INSERT INTO ar_bank_info
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test = 'policyNo != null'>policy_no, </if>
<if test = 'orderNo != null'>order_no, </if>
<if test = 'bankCode != null'>bank_code, </if>
<if test = 'bankName != null'>bank_name, </if>
<if test = 'bankIdNo != null'>bank_id_no, </if>
<if test = 'bankAccountName != null'>bank_account_name, </if>
<if test = 'bankProvince != null'>bank_province, </if>
<if test = 'bankCity != null'>bank_city, </if>
<if test = 'paymentForm != null'>payment_form, </if>
<if test = 'createTime != null'>create_time, </if>
<if test = 'backAmount != null'>back_amount, </if>
<if test = 'soStatus != null'>so_status, </if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test = 'policyNo != null'>#{policyNo}, </if>
<if test = 'orderNo != null'>#{orderNo}, </if>
<if test = 'bankCode != null'>#{bankCode}, </if>
<if test = 'bankName != null'>#{bankName}, </if>
<if test = 'bankIdNo != null'>#{bankIdNo}, </if>
<if test = 'bankAccountName != null'>#{bankAccountName}, </if>
<if test = 'bankProvince != null'>#{bankProvince}, </if>
<if test = 'bankCity != null'>#{bankCity}, </if>
<if test = 'paymentForm != null'>#{paymentForm}, </if>
<if test = 'createTime != null'>#{createTime}, </if>
<if test = 'backAmount != null'>#{backAmount}, </if>
<if test = 'soStatus != null'>#{soStatus}, </if>
</trim>
ON DUPLICATE KEY UPDATE
policy_no = VALUES(policy_no),
bank_name = VALUES(bank_name),
bank_id_no = VALUES(bank_id_no),
bank_code = VALUES(bank_code),
bank_account_name = VALUES(bank_account_name),
payment_form = VALUES(payment_form),
modify_time = VALUES(modify_time),
back_amount = VALUES(back_amount),
so_status = VALUES(so_status)
</script>
阅读全文 »

注解提供了一种简单的方式来实现简单映射语句,省略了对应的 mapper.xml,而不会引入大量的开销。但是比较复杂的 SQL 和 动态 SQL 还是建议采用映射文件。

MyBatis 框架的注解

MyBatis 的常用的注解包括

注解 描述
@Insert、@Update、@Delete、@Select 映射增改删查 SQL 语句
@InsertProvider、@UpdateProvider、@DeleteProvider、@SelectProvider 映射增改删查动态 SQL 语句
@Result 在列和属性或字段之间的单独结果映射
@Results 结果映射的列表,包含了一个特别结果列如何被映射到属性或字段的详情
@One 复杂类型的单独属性值映射,相当于 <association>
@Many 映射到复杂类型的集合属性,相当于 <collection>
@Options 提供配置选项的附加值
@Param 当映射方法需要多个参数,这个注解可以被应用于映射器的方法 参数来给每个参数一个名字。否则,多 (不包括任何 RowBounds 参数),如 #{param1} , #{param2} 等。 使用 @Param(“id”), 参数应该被命名为 #{id}
@ResultMap 给@Select 或者@SelectProvider 提供在 XML 映射中的的 id
@ResultType 当使用结果处理器时启用此注解
阅读全文 »

mybatis 传递参数的 7 种方法

mybatis 传递参数的 7 种方法_独钓寒江雪~的博客-CSDN 博客_mybatis 传入对象参数
https://blog.csdn.net/bdqx_007/article/details/94836637

MySQL_插入更新 ON DUPLICATE KEY UPDATE

平时我们在设计数据库表的时候总会设计 unique 或者 给表加上 primary key 的限制条件.
此时 插入数据的时候 ,经常会有这样的情况:
我们想向数据库插入一条记录:
若数据表中存在以相同主键的记录,我们就更新该条记录。
否则就插入一条新的记录。

阅读全文 »

遇到过的问题

mysql 中判断记录是否存在方法比较

1
select IFNULL((SELECT 1 FROM gen_table where table_id = 1 limit 1), 0) AS c1

结果为 1,则说明记录存在;结果为 0,则说明记录不存在。

Invalid bound statement (not found)出现原因和解决方法

1. mapper.xml 中的 namespace 和实际的 mapper 文件不一致
这个问题其实很好解决,瞪大眼睛,仔仔细细看看,到底对不对应不就好了

2. mapper 接口中的方法名和 mapper.xml 中的 id 标签不一致
这个问题和上个问题解决方法一样,仔细对对嘛,这个再对不出来,面壁思过吧。

3. 若以上两步的问题都没有,但是还是不行,可能原因就是,没有构建进去,打开 target 看看对应的 mapper.xml 文件是否存在

Java 启动报错: java.sql.SQLSyntaxErrorException:Table‘xx.QRTZ_LOCKS‘ doesn‘t exist

通过 docker 安装 mysql、redis 以后启动时候报错,但是数据库里面发现有这个表,奇了怪了,网上一顿搜索发现,原来是 linux 下 mysql 默认是大小写敏感的,但是我们正常使用都是大小写不敏感。

阅读全文 »
0%