- 博客(14)
- 资源 (4)
- 收藏
- 关注
原创 关于Redis事务
事务的执行流程redis的事务可以通过multi命令开始事务,当事务开始后,发送的命令不会立刻被执行,而是存放在一个队列之中,所以在事务中保存数据后,立刻获取是不会得到数据的。只有当事务执行后,才会获取到数据。通过exec命令执行事务,但是redis在事务开始之前,会通过watch命令监控指定的键,在exec命令调用后,会先去判断被watch监控的键的值,如果该值发生了变化,redis就会取消事务,否则会执行事务。Redis在执行事务时要么全部执行,要么全部不执行,并且不会被其他客户端打断,从而保证了Re
2022-01-29 02:50:57 1617
原创 spring-boot事务解析@Transactional
隔离级别未提交读这是最低的隔离级别,这种隔离级别下,允许一个事务读取另外一个事务没有提交的数据,因此会产生脏读,不可重复读,欢读问题,在@Transactional中可通过isolation = Isolation.READ_UNCOMMITTED来设置此隔离级别。这种隔离级别比较危险,因此不常采用。读已提交这种隔离级别,一个事务只能读取另外一个事务已经提交的数据,不能读取未提交的数据。但是如果出现第一次读和第二次读取之间存在有另一个事务提交,会导致两次读取结果不一致,也就是不可重复读现象,在@T
2022-01-23 23:03:51 960
原创 关于target文件夹下没有*.xml文件报错Invalid bound statement (not found)
关于target文件夹下没有*.xml文件项目背景解决思路项目背景在搭建springboot项目用于学习时,编写了一个简单的根据主键查询的controller,service,mapper,在浏览器输入路由后,应该输出对应的json数据,但是我测试时发现后台报错,报错内容如下:Invalid bound statement (not found):XXX(注:XXX为mapper文件路径)解决思路问题可能原因1一般这种问题有可能是你的mapper.xml文件的namespace路径错误,或者方法
2022-01-23 18:29:23 1045
原创 遍历checkbox框,并设置选中
将用户上次的设置回显针对用户上一次的选择操作,将用户上次已选的checkbox回显,之前在网上看的方法有些错误,所以在这里重新记录一下代码function echo() { // 用于当用户编辑权限时回显之前的权限 permissionArray.forEach(function (map) { let id = map.id; let perArr = map.permission.split(",");
2020-12-07 12:24:00 676
原创 利用thymeleaf动态拼接HTML标签的属性
需求背景最近在做的考试系统,进行到考试模块,该模块逻辑大致如下:从后台查询到各类型的题目数据,然后将数据放入前台模板中,生成一张试卷。前端使用的是HTML+ thymeleaf。在做这个功能时,遇到下列需求:每一道题目的题干和选项,都有特定的id,这些id将会在提交答案和检测是否答题的功能中使用到。这就要保证每一个id都不同,因此,对于每一道题,我们都需要动态的拼接id,这样就可以保证每一道题的id都不同。而获取后台数据我才用的是thymeleaf循环遍历的 th:each代码实现这里放入试题的模板
2020-08-14 13:45:58 3020
原创 shiro配置多Realm登录
需求背景在做一个学习系统,接到需求要前后台用户通过不同的界面登录,前台用户不能通过他的账号登录后台,后台用户也不能用后台账号登录前台页面,前后台用户还有各自的权限级别划分。大概就这么个意思,这是一个比较常见的需求,大家心里能明白我说的就行了(虽然你可能并不明白…)实现思路该项目采用的是springBoot + Mybatis的技术框架,用户验证这一块采用的是shiro框架。shiro框架多种用户登录,实现的思路如下:Realm一种用户创建一个Realm(有关Realm的知识大家可以去看看文档)
2020-07-30 16:38:05 812
原创 Java递归遍历该节点下所有子节点
java递归树需求最近在做一棵资料树时,遇到业务需求:父节点状态改变,则子节点状态要一致。实现思路首先获取该节点的id,随后利用递归遍历出所有子节点,再将这些子节点状态修改为父节点的状态实现代码业务部分/** 用于存放子节点的集合 */ List<Long> sonIds = new ArrayList<>();/** * 修改大纲关系 * * @param baseRough 大纲关系 * @return 结果
2020-07-21 13:15:51 1984 1
原创 如何查询MySQL一个数据库中表的数量
查询指定数据库中表的数量语句:SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = '库名'
2020-06-08 15:07:17 2849
原创 String字符串的比较
今日面试遇到一道面试题,比较字符串,字符串的内容相同,但是创建方式不同,先上题:public class StringCompare { public static void main(String[] args) { String str1 = "com"; String str2 = new String("com"); String ...
2020-04-21 20:57:21 307
原创 spring依赖注入的三种方法
什么是依赖注入依赖注入:Dependency Injection。它是 spring 框架核心 ioc 的具体实现。我们的程序在编写时,通过控制反转,把对象的创建交给了 spring,但是代码中不可能出现没有依赖的情况。ioc 解耦只是降低他们的依赖关系,但不会消除。例如:我们的业务层仍会调用持久层的方法。那这种业务层和持久层的依赖关系,在使用 spring 之后,就让 spring 来维...
2020-04-10 12:58:56 206
原创 BeanFactory和ApplicationContext的区别
二者的关系BeanFactory 才是 Spring 容器中的顶层接口。ApplicationContext 是它的子接口。二者的区别BeanFactory 和 ApplicationContext 的区别:创建对象的时间点不一样。ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。BeanFactory:什么使用什么时候创建对象。使用场景建议App...
2020-04-10 01:17:10 200
原创 Kettle的简单使用
19 表输出表输出就是把数据写入到指定的表!如果表不存在,可以动态的创建,也可以手动指定要插入的数据库字段20 更新更新就是把数据库已经存在的记录与数据流里面的记录进行对比,如果不同就进行更新注意:如果记录不存在,就会出现错误21 插入更新插入更新就是吧数据库已经存在的记录与数据流里面的记录做对比,如果不同就进行更新。如果记录不存在,就会插入数据...
2020-02-04 13:50:30 1734
原创 关于kaggle的新手练习《泰坦尼克号数据集》
关于kaggle的新手练习《泰坦尼克号数据集》这两天尝试了一下kaggle上的《泰坦尼克号数据集》,复习了numpy的一些基本操作指令和简单的机器学习模型(主要是使用sklearn框架)以及管道流水线的处理。写此博客用于记录。泰坦尼克号数据集较为简单,数据量小,训练集的数据质量也比较高。通过该项目,我加深了对DataFrame切片的理解,以及一些简单的numpy指令。这个数据集可以很好地帮助新...
2019-12-18 12:03:11 992
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人