数据库事务的 ACID 特性
数据库事务的 ACID 特性题目数据库事务的 ACID 特性
推荐解析1)原子性( Atomicity ):确保事务中的所有操作要么全部提交成功,要么全部失败回滚,不会出现部分操作成功部分操作失败的情况。
START TRANSACTION;UPDATE account SET balance = balance - 100 WHERE account_id = 123;INSERT INTO transaction_log (account_id, amount, transaction_type) VALUES (123, 100, 'WITHDRAW');COMMIT;
如果任何一个操作失败,整个事务将会回滚,保持数据的一致性。
2)一致性( Consistency ):当事务完成时,数据库从一个一致性状态转移到另一个一致性状态,不会破坏数据库的完整性约束。
START TRANSACTION;UPDATE orders SET status = 'shipped' WHERE order_id = 456;INSERT INTO shi ...
Java 什么时候类会被加载?
Java 什么时候类会被加载?题目Java 什么时候类会被加载?
推荐解析1)创建类的实例,也就是 new 一个对象
public class Test { public static void main(String[] args) { MyClass obj = new MyClass(); // 通过new关键字实例化对象,会触发类加载 System.out.println(MyClass.staticField); // 通过getstatic指令读取静态字段,会触发类加载 MyClass.staticMethod(); // 通过invokestatic指令调用静态方法,会触发类加载 }}
2)访问某个类或接口的静态变量,或者对该静态变量赋值
public class Test { public static void main(String[] args) { // 访问静态变量 System.out.println(MyClass.stat ...
什么是 JVM 双亲委派机制?
什么是 JVM 双亲委派机制?题目什么是 JVM 双亲委派机制?
推荐解析通俗的说,双亲委派模型,就是加载类的时候,先请求其父类加载器去加载,如果父类加载器无法加载类,再尝试自己去加载类。如果都没加载到,就抛出异常。
双亲委派机制加载过程:
双亲委派机制思维导图:
使用双亲委派机制的好处:
1)使得 Java 类随着它的类加载器一起具有一种带有优先级的层次关系,每个层级得到了统一。
2)通过这种层级关可以避免类的重复加载,当父亲已经加载了该类时,就没有必要子 ClassLoader 再加载一次,避免了多份同样字节码的加载。
3)安全,避免核心类被修改 Java 核心 API 中定义类型不会被随意替换,假设通过网络传递一个名为 Java.lang.Long 的类,通过双亲委托模式传递到启动类加载器,而启动类加载器在核心 Java API 发现这个名字的类,发现该类已被加载,并不会重新加载网络传递的过来的 Java.lang.Long,而直接返回已加载过的 Long.class,这样便可以防止核心 API 库被随意篡改。
总结:
1)层级得到统一
2)避免相同字节码被重复加载
3)防止 ...
MyBatis学习总结(1)
1.1MyBatis的增删改查1.添加<!--int insertUser();--><insert id="insertUser">insert into t_user values(null,'admin','123456',23,'男')</insert>
2.删除<!--int deleteUser();--><delete id="deleteUser">delete from t_user where id = 7</delete>
3.修改<!--int updateUser();--><update id="updateUser">update t_user set username='ybc',password='123' where id = 6</update>
4.查询一个实体类<!-- ...
Java读取MySQL的DateTime类型
Java读取mysql的datetime类型我在项目中使用LocalDateTime类作为与MySQL中DateTime交互的类型,发现在控制台显示时间内容时,不是我想要的yyyy-MM-dd HH:mm:ss,而是2022-12-07T14:39:01,会带一个T,不符合需求。
解决方法:将Java的LocalDateTime类转化为String类
FiledFill是我设置的一个自定义元数据对象处理器用来自动填充和更新时间的。
下面是MyMetaObjectHandler类(自动填充和更新工具 MyBatisPlus)
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;import lombok.extern.slf4j.Slf4j;import org.apache.ibatis.reflection.MetaObject;import org.springframework.stereotype.Component;import java.time.LocalDateTime;import java ...
程序员小白条的 2023 年度总结
程序员小白条的 2023 年度总结这里是程序员小白条的 2023 年度总结:
1)学校经历:大二下把软考考了,最后一次纸质考的软考,然后上午题 50 ,下午题 58 过了,毕竟我把题库都刷完了,在我看来选择题要比大题难,大题目像学习 Java、有算法基础的同学非常有利,只要跟着看几套视频,基本就没问题了,主要是选择题,408 都涉及,还有法律,专业英语等方面的知识,涉及的广度比较广,有时候不太好复习,我是只刷了题库,2000 题差不多,那时候还没学 Python3,但考试有三题 Python3 的题目,因此对学过 Java 和 Python 的同学比较友好,软考这东西,你说它没用也没用,但总比你吹牛,然后简历上什么获奖经历都没有要好,像很多人不屑考四六级,软考,参加蓝桥杯之类的竞赛,说什么含金量太低,最后简历上写什么驾驶证???我只能扣 666,还是不要眼高手低为好,大三上报了一波计算机三级的数据库技术,顺便看了下大数据,计算机三级对于计算机专业的来说=小学题目,不建议考这个,我是为了学校的素拓分,不拿白不拿,对混奖学金有加成。
2)创作经历:从开源我的项目到 Gitee,维 ...