随笔分类 - Sql
摘要:先从 with 关键字开始,with 提供了一种编写子查询的方法,这种子查询用于 select 查询语句中。可以将这些子查询(通常被称为 Common Table Expressions 简称 CTE )视为定义了仅用于此查询的临时表。with 的一种用途是将复杂的查询分解成简单的查询语句。例如下面
阅读全文
摘要:MyBatis 的真正强大之处在于它的映射语句,这也是它的魔力所在。由于它的映射语句异常强大,映射器的 XML 文件就显得相对简单。 在 XML 中添加一个 select 元素,写一个查询的 SQL,再做一些简单的配置,就可以将查询的结果直接映射到对象中。 select select 标签的常用属性
阅读全文
摘要:简述 MyBatis Generator (简称 MBG)is a code generator for MyBatis. 可以根据数据库中的表生成相应的实体类以及一些常用的增删改查方法。 使用 MBG 会生成以下三类文件: Java POJOs that match the table struc
阅读全文
摘要:数据库的事务:事务就是单个数据逻辑单元组成的对象操作集合,而数据库终极目标就是是数据库从一个一致的状态转换到另一个一致的状态。 事务的四大特性(ACID): 原子性 Atomicity 事物包含的所有数据库操作要么全部成功,要么全部失败回滚 一致性 Consistency 一个事务执行前后都必须处于
阅读全文
摘要:数据库的三大范式: 第一范式:数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值。 第二范式:先满足第一范式,实体中每一行的所有非主属性都必须完全依赖于主键。 第三范式:先满足第二范式,数据库中每一列数据都和主键直接相关,而不能间接相关。 下面举例来解释三大范式。 例如用户信息表中有 地
阅读全文
摘要:Hibernate 数据缓存(Cache)分为两个层次,一级缓存 Session Level,二级缓存 SessionFactory Level。 Hibernate 中缓存将在以下两种情况中发挥作用: 通过主键加载数据时 延迟加载 先介绍下一级缓存,Session 在内部维护了一个 Map 数据类
阅读全文
摘要:使用缓存可以使应用更快地获取数据,避免频繁的数据库交互。MyBatis 作为持久化框架,提供了非常强大的查询缓存特性。 一般提到 MyBatis 缓存的时候,都是指二级缓存。一级缓存(也叫本地缓存)默认会启用,并且不能控制,因此很少会提到。 MyBatis 的一级缓存存在于 SqlSession 的
阅读全文
摘要:MyBatis 是一款优秀的支持自定义 SQL 查询、存储过程和高级映射的持久层框架,消除了几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索。MyBatis 可以使用 XML 或注解进行配置和映射,MyBatis 通过将参数映射到配置的 SQL 形成最终执行的 SQL 语句,最后将执行 S
阅读全文
摘要:本文根据书籍《sql必知必会》,整理而成。 基本概念 数据库 database:保存有组织的数据的容器,通常是一个文件或一组文件。 数据库管理系统 DBMS:又称数据库软件,数据库是通过 DBMS 创建和操纵的容器。 表 table:某种特定类型数据的结构化清单。 模式 schema:关于数据库和表
阅读全文
摘要:SpringBoot连接mysql需要在application.properties添加一些微调信息,Spring自带连接池,如果用Spring自带的连接池: spring.datasource.url=jdbc:mysql://localhost:3306/jelly?useSSL=false&c
阅读全文
摘要:根据业务建模型时,有一些字段基本每个表都是需要的,如下表: package com.company.jelly.model; import javax.persistence.EntityListeners; import javax.persistence.GeneratedValue; impo
阅读全文
摘要:以某个实际场景为例,现在两张表:用户表User 订单表Order;很显然用户对订单是一对多的关系。二者注解如下 用户表User @Entity @Table(name="users") public class User{ private Integer id; private String nam
阅读全文