想到什么说什么
1、A表更新需要B表数据,怎么写sql?
update a set a.目标字段名=(select b.来源字段名 from b where a.关联键=b.关联键)where exists (select 1 from b where a.关联键=b.关联键);防止查询为空把a表数据置null。
update a join b on a.关联键=b.关联键 set a.字段名=b.字段名 where ...;
2、jwt安全性怎么保障,就是如果别人获取到了你这个字符串就可以直接拿去登录,怎么防范?
https加密传输、短时效AccessToken+刷新令牌机制、非对称加密、Redis黑名单主动作废token、HttpOnly Cookie存储防xss、设备信息校验、关键操作二次鉴权、访问频率限制。
3、@Resource和@Autowired核心区别
@Resource默认按照变量name属性匹配bean,名字找不到再按类型匹配。找不到不会直接抛异常。
@Autowired默认按照变量类型属性匹配bean。找不到就报错。
4、事务是什么?什么时候用到事务注解?
事务是为了保证多步数据库操作原子性、数据一致;只要业务中一次方法里执行两条及以上增删改SQL,就必须在Service层添加 @Transactional 事务注解,防止出现部分成功、部分失败的数据错乱问题。
5、某个sql异常,如何不影响其他sql?
单独用try-catch包裹
开启独立子事务
6、什么是embedding?
把文字转换成一段长度固定的数字向量,比如一句话:Java事务要保证数据一致性
经过 Embedding 模型后,变成:
0.12, 0.35, -0.07, 0.88, ......\] 上百维/上千维数组。 语义越相似的文本,生成的向量距离越近。