1.基本类型之间 先看不同类型的基本类型之间的比较: private static void test2(){ int a = 100; long b = 100L; boolean result = b == a; System.out.println(result ? "相等" : "不相等"); } 结果是: 相等 这里实际上进行了隐式类型转换,编译器将 int 类型“提升”为 long 类型后进行比较,相当于: boolean result = b == (long)a; 2.包装类…
1.基本类型之间 先看不同类型的基本类型之间的比较: private static void test2(){ int a = 100; long b = 100L; boolean result = b == a; System.out.println(result ? "相等" : "不相等"); } 结果是: 相等 这里实际上进行了隐式类型转换,编译器将 int 类型“提升”为 long 类型后进行比较,相当于: boolean result = b == (long)a; 2.包装类…
图源:ubiq.co 简单的说,视图就是“固化的SQL查询”。 这里看一个简单示例,我们有一个表,保存学生信息: mysql> select * from student limit 10; +-----+---------------+-----------+----------+ | id | average_score | level | name | +-----+---------------+-----------+----------+ | 573 | 27 …
图源:ubiq.co 在 MySQL 中,用事件(Event)表示和定义一个定时任务。 我们可以利用事件执行一些定时任务,比如定期生成统计数据、清理和转储日志表等。 启用事件 在使用事件之前需要先检查 MySQL 是否开启了事件功能: mysql> SELECT @@event_scheduler; +-------------------+ | @@event_scheduler | +-------------------+ | ON | +------------------…
图源:ubiq.co 触发器,就像字面意思那样,它会在数据库某些事件发生时执行一些操作。 具体来说,触发器会在特定表的INSERT、UPDATE、DELETE这些类型的 SQL 语句执行时被“触发”,并执行触发器中定义好的(一条或多条) SQL 语句。 在 MySQL 中,触发器存在一些限制,我们只能对同一张表定义最多6个触发器,分别对应6个事件: BEFORE INSERT AFTER INSERT BEFORE UPDATE AFTER UPDATE BEFORE DELETE AFTER DELETE 此外,…
图源:ubiq.co 存储过程可以看做是将一组 SQL打包执行,并返回最终的执行结果。 其优点是:因为存储过程中的 SQL 是同时一次执行,所以没有数据一致性的问题。其次,不需要由客户端多次传输 SQL 命令,而只需要告诉 MySQL 执行某某存储过程,所以性能上比执行同样内容的多条 SQL 是要更好的。最后,使用存储过程,即使某些表结构发生变化,只要存储过程返回的结果和接收参数不发生改变,相应的调用代码也无需改变。 本文介绍如何创建和使用 MySQL 的存储过程。 本文使用可视化数据库连接工具 SQLyog 连接…
图源:简书 (jianshu.com) 在之前的文章中我们学习过条件查询(Criterial Query),构建条件查询的一般步骤是: 获取HibernateCriteriaBuilder 利用HibernateCriteriaBuilder创建JpaCriteriaQuery 利用JpaCriteriaQuery获取查询的根 利用HibernateCriteriaBuilder构建谓词 用谓词组装JpaCriteriaQuery 利用JpaCriteriaQuery创建Query并执行查询 本篇文章将进一步说明构…
图源:简书 (jianshu.com) 在 JPA 中关联实体实际上对应表连接,而表连接可以通过内连接(Inner Join)、外连接(Outer Join)和 Where等方式实现,实际上 JPA 也用这些方式实现对所关联的实体数据的查询和加载。 本文示例使用以下实体类: @Getter @Builder @NoArgsConstructor @AllArgsConstructor @Entity public class School { @Id @GeneratedValue(strategy =…
图源:简书 (jianshu.com) 惰性加载带来的问题 在实体类之间建立关系时,可以选择“惰性加载”,比如: @Entity public class Student { // ... @OneToMany(mappedBy = "student", cascade = CascadeType.ALL, fetch = FetchType.LAZY) @Builder.Default private List<Email> emails …
图源:简书 (jianshu.com) JPA 的查询参数分为两种: 命名参数(Named Parameters) 位置参数(Positional Parameters) 类似于 Python 中的函数的位置参数和指名参数。 本文的示例使用下面的实体类: @Entity public class Student { private static final int MAX_SCORE = 100; private static final int MIN_SCORE = 0; public e…
图源:简书 (jianshu.com) JPA 中的查询(Query)有三种类型: Query,用 Java 持久性查询语言(JPQL,Java Persistence Query Language)编写。 NativeQuery,纯 SQL 编写。 Criterial API Query,用编程的方式编写。 为了介绍这些查询,这里定义一个实体类: @Getter @Builder @NoArgsConstructor @AllArgsConstructor @Entity public class Student…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED. 本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang