①leetcode
207-226
反转二叉树
https://leetcode-cn.com/problems/invert-binary-tree/solution/
查找第k个最大元素
https://leetcode-cn.com/problems/kth-largest-element-in-an-array/submissions/
实现前缀树(在公共空间声明,在构造函数初始化)
https://leetcode-cn.com/problems/implement-trie-prefix-tree/solution/qian-zhui-shu-by-19216801-h9e2/
DFS深搜找括扑图环
https://leetcode-cn.com/problems/course-schedule/submissions/
最大正方形
https://leetcode-cn.com/problems/maximal-square/submissions/
②spring
2)spring基于AOP事务控制
spring中基于XML的声明式事务控制
1,配置事务管理器
2,配置事务通知(导入事务的通知)
此时需要导入事务的约束 tx名称空间和约束,同时也需要AOP
使用tx:advice标签配置事务通知
属性:id:给事务通知起一个唯一标识
transaction-manager:给事务通知提供一个事务管理器
3,配置AOP切入点表达式
4,建立事务通知和切入点表达式的关系
5,配置事务的属性
在事务的通知:tx:advice标签内部
配置事务属性:
isolation="":用于事务的隔离级别,默认default,表示数据库的默认隔离级别
propagation=""指定事务的传播行为,默认REQUIRED,表示一定会有事务,增删改查的选择,查询方法可以选择SUPPORTS。
read-only=""是否只读,只有查询方法才能设置成true,默认false,表示读写
timeout=""用于指定事务超时时间,默认-1,永不超时,以秒为单位
rollback-for=""用于指定一个异常,产生该异常事务回滚,其他异常不回滚
no-rollback-for=""指定一个异常,产生该异常事务不回滚,其他异常回滚
基于注解的事务配置:
spring中基于注解的声明式事务控制
1,配置事务管理器
2,开启spring对注解事务的支持
3,在需要事务支持的地方使用@Transactional
③八股文
做AOP事务控制时,一直不明白为什么事务不生效,然后看八股偶然发现:
数据库不支持事务解决方法:
Mybatis:
Mybatis四大组件:
Executor、ResultSetHandler、StatementHandler、ParameterHandler,这是Mybatis中的四大对象,也是拦截器的切入点。
#{}和${}的区别是什么?
是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如{driver}会被静态替换为com.mysql.jdbc.Driver。
#{}是 sql 的参数占位符,MyBatis 会将 sql 中的#{}替换为?号,在 sql 执行前会使用 PreparedStatement 的参数设置方法,按序给 sql 的?号占位符设置参数值,比如 ps.setInt(0, parameterValue).
不转义字符串,有风险,同时存在sql注入.
XML文件中常见的标签?
<select><insert><update><delete><resultMap><parameterMap><sql><include><selectKey>
Dao接口原理:
Mybatis中每一个