about我的医疗项目疑问笔记

mapper.xml

resultType和resultMap

sql语句

  • '%' 是一个通配符,表示可以匹配0个或多个任意字符
d.name like '%${好}%' 匹配 好棒,你好,好好好
  • <update id="deleteByIds"> update doctor set status = 4 WHERE id IN <foreach collection="array" open="(" item="one" separator="," close=")"> ${one} </foreach> </update>

foreach标签的解释:

collection: 指定数组名称,这里指定为array

open: 开始符号,这里设置为(

item: 代表数组当前遍历的元素别名,这里设置为one

separator: 元素之间的分隔符,这里设置为,

close: 结束符号,这里设置为)

foreach标签会遍历指定的array数组,并将每个元素通过${one}取出,拼接成IN条件里的多个id,形成语句:

WHERE id IN (id1,id2,id3...)

这样就可以批量更新指定id数组里的多个id记录了。

foreach标签通过这种方式,实现了将集合转换成SQL语句中的IN条件里的多个值的功能。

  • LIMIT和OFFSET是用于限制和分页查询结果集的SQL关键字。

LIMIT用于限制返回的记录数。它接受一个整数参数,表示要返回的最大记录数。

例如:

```sql
SELECT * FROM users LIMIT 5;
```

这条语句会从users表中返回最多5条记录。

OFFSET用于跳过结果集中的前几条记录,然后返回后面的记录。它也接受一个整数参数,表示要跳过的记录数。

例如:

```sql 
SELECT * FROM users LIMIT 5 OFFSET 10;
```

这条语句会从users表中跳过前10条记录,然后返回后面5条记录,即从第11条开始返回5条记录。

同时使用LIMIT和OFFSET可以实现分页功能。例如:

- 第一页:LIMIT 10 OFFSET 0 
- 第二页:LIMIT 10 OFFSET 10
- 第三页:LIMIT 10 OFFSET 20

LIMIT指定每页返回的记录数,OFFSET指定从哪条记录开始返回,通过调整OFFSET的值就可以实现分页查询不同的记录范围。

所以LIMIT用于限制返回记录数,OFFSET用于从指定位置开始返回记录,二者结合可以实现分页查询功能。

  • ALTER TABLE patient_user MODIFY create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP

这条ALTER TABLE语句的作用是:

修改patient_user表中的create_time列,将其默认值修改为CURRENT_TIMESTAMP。

具体解释:

  1. ALTER TABLE 是针对表进行结构修改的 DDL 语句。

  2. patient_user 是要修改的表名。

  3. MODIFY 是用于修改列定义的子句。

  4. create_time 是要修改默认值的列名。

  5. TIMESTAMP 是该列的数据类型,不修改。

  6. DEFAULT 关键字表示修改默认值。

  7. CURRENT_TIMESTAMP 是新的默认值,表示将默认值设置为当前时间戳。

所以这条语句的作用就是:

将patient_user表中create_time列的数据类型保持不变,但将其默认值从NULL改为CURRENT_TIMESTAMP,达到给create_time列自动赋当前时间的效果。

执行这条语句后,如果插入数据到patient_user表时不给create_time指定值,它就会自动用当前时间填充。

正则表达式

[\\u4e00-\\u9fa5]{1,20}$]
  • \u4e00-\u9fa5:表示一个中文范围,从Unicode字符\u4e00到\u9fa5,包括汉字在内
  • {1,20}:表示前面字符重复1-20次
  • $:表示字符串结束,匹配字符串必须以该正则表达式结束

所以整个正则表达式\u4e00-\u9fa5]{1,20}$的意思是:

匹配从1-20个汉字字符组成的字符串,字符串必须以这组汉字结尾。

举几个例子:

  • 你好:匹配成功
  • 你好吗:不匹配,超过20个字符
  • 好:匹配成功
  • 你好abc:不匹配,字符串没有以汉字结尾

其他

  • po类中的属性类型要用包装类
  • @Param("file") MultipartFile file,@Param("doctorId") Integer doctorId,@Param注解什么意思

Claude-Instant

@Param注解在Spring MVC中有以下几个意思:

  1. 标注方法参数。

它可以标注在Controller方法参数上,表明该参数来源于HTTP请求的某个参数。

比如:

@PostMapping("/upload") public String handleFileUpload(@Param("file") MultipartFile file, @Param("doctorId") Integer doctorId) { // ... }

这里@Param("file")标注file参数来自请求的"file"参数,@Param("doctorId")标注doctorId来自"doctorId"参数。

  1. 参数名称绑定。

它可以将请求参数名称与方法参数名称绑定起来。

如果方法参数名称直接使用,默认会从请求中查找与之匹配的名称参数。使用@Param可以指定实际的参数名称。

  1. 参数顺序无关。

和方法参数顺序无关,只根据@Param指定的名称来从请求中查找参数。

  1. 可重复使用。

一个参数可以用@Param多次标注,指定不同请求参数名称映射。

所以总的来说,@Param主要用于解决请求参数与方法参数名称不匹配的问题,实现不同名称的参数传递。

  • @SaCheckPermission注解中的mode属性定义了权限检查的逻辑模式,可以取值如下:

- SaMode.AND:表示需要同时满足所有给定的权限值,即需要具备所有给定权限才通过检查。

- SaMode.OR:表示满足任意一个给定的权限值即通过检查。

所以在@SaCheckPermission(value = {"ROOT", "MEDICAL_DEPT:INSERT"}, mode = SaMode.OR)这个注解中:

- value指定需要检查的权限列表是{"ROOT", "MEDICAL_DEPT:INSERT"}

- mode指定为SaMode.OR

意思是只要当前用户具有"ROOT"权限或者"MEDICAL_DEPT:INSERT"权限,就通过该注解的权限检查。不需要同时具备两个权限。

简单来说,SaMode.OR模式表示权限检查通过条件是“或”关系,即任意一个权限满足即可;而SaMode.AND模式表示权限检查通过条件是“与”关系,需要同时满足所有权限。

所以在这个例子中,mode = SaMode.OR指定了“或”逻辑模式进行权限检查。

  • @Transactional注解在Spring框架中是一个事务管理注解。它的主要功能和意义如下:

- 标注在方法上,表示该方法内部的操作应该在事务内执行。

- 一旦方法内出现异常,事务将自动回滚,数据不会持久化到数据库。

- 成功执行后,事务自动提交,数据会持久化到数据库。

- 设置了事务的隔离级别、传播行为等属性。

- 可以根据不同情况设置事务属性,如只读事务、必要事务等。

- 让开发人员不用显式调用事务管理Api就可以使用声明式事务管理。

- 简化了程序开发,把事务操作从业务方法中解耦,交给Spring管理。

所以总结来说,@Transactional注解的作用是:

将方法包装在事务中执行,保证方法执行的原子性和隔离性,并自动管理事务的提交和回滚。从而实现声明式事务管理,让开发关注业务逻辑,不用手动管理事务。
 

 

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值