上一篇文章,我们也介绍了访问 MySql 数据库 - Java 中 Spring Boot 使用 JdbcTemplate 访问 MySql 数据库。...本文我们介绍 Java 中 Spring Boot 使用 MyBatis 访问 MySql 数据库。 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。...代码演示的环境见文章 - Java 中 Spring Boot 使用 JdbcTemplate 访问 MySql 数据库。...数据库配置信息 在 application.yml 中配置数据库信息如下: # Server server: port: 8081 # DataSource Config spring: datasource...创建 User 表 在 mysql 数据库 mydb_01 新建一个 User 表来测试: 表包含 id,name 和 age 字段。
在使用 Python 和 SQLAlchemy 时,结合外键映射可以让你在查询时轻松地获取其他表中的数据。...SQLAlchemy 提供了丰富的 ORM(对象关系映射)功能,可以让你通过定义外键关系来查询并获取关联的数据。下面我会演示如何设置外键关系,并通过 SQLAlchemy 查询获取其他表中的数据。...1、问题背景在使用 SQLAlchemy 进行对象关系映射时,我们可能需要获取其他表中的数据。...2.3 添加另一个外键如果我们需要在 Order 表中添加另一个外键,例如 product_id 字段,并且希望获取该订单所属产品的信息,那么我们可以在 Order 类中定义一个新的关系属性,使用 relationship...总结结合外键映射,你可以通过 SQLAlchemy 轻松地获取不同表之间关联的数据。你可以使用:relationship:设置表之间的关系(如外键),并通过 ORM 获取关联的数据。
并发编程、Java基础、Spring、微服务、Linux、Spring Boot 、Spring Cloud、RabbitMQ、kafka等16个专题技术点,都是小编在今年金三银四总结出来的面试真题,...InnoDb: 支持 ACID 的事务,支持事务的四种隔离级别; 支持行级锁及外键约束:因此可以支持写并发; 不存储总行数: 一个 InnoDb 引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制...,一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为 2G),受操作系统文件大小的限制; 主键索引采用聚集索引(索引的数据域存储数据文件本身),辅索引的数据域存储主键的值...在 MySQL 中,使用以下代码查询显示前 50 行: SELECT*FROMLIMIT 0,50;17、可以使用多少列创建索引?任何标准表最多可以创建 16 个索引列。...图片26、锁的优化策略图片27、索引的底层实现原理和优化图片28、什么情况下设置了索引但无法使用图片29、实践中如何优化MySQL图片30、优化数据库的方法图片31、简单描述MySQL中,索引,主键,唯一索引
主键的作用是保证数据的完整性和唯一性,加快数据检索速度。 外键(Foreign Key):外键是用来建立表与表之间的关联关系的字段。它指向另一张表的主键,用来保持数据完整性和一致性。...外键可以确保数据之间的引用关系,并且在删除或更新操作时可以自动处理关联表中的数据。 索引(Index):索引是为了提高数据检索速度而创建的数据结构。...但在实际开发中,因为性能的原因,所以我们很少用到真正的外键,也就是“物理外键”(使用 FOREIGN KEY 创建),而是在程序中使用逻辑外键来“建立”多张表的外键关系。...阿里巴巴《Java开发手册》中也明确规定禁止使用数据库的外键,如下图所示: 11.TCP和UDP区别? TCP(传输控制协议)和 UDP(用户数据报协议)是两种常用的网络传输协议。...哈希表的核心思想是通过哈希函数将键映射到一个固定大小的数组索引上,将键值对存储在该索引位置上。当需要查找或插入数据时,通过哈希函数计算出键对应的索引,然后在该位置上进行操作,从而实现快速的数据访问。
什么是JPA JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。...*********** #创建表的MySql语句位置 spring.datasource.schema=classpath:schema.sql #插入数据的MySql语句的位置 spring.datasource.data....Driver 有两个配置是用来初始化我们的数据库的 #创建表的MySql语句位置 spring.datasource.schema=classpath:schema.sql #插入数据的MySql语句的位置...(entities); } 请求测试添加接口http://localhost:8080/testInsert 查看表结构 外键默认命名 表名_id 进行映射 如果手动指定外键字段,使用@JoinColumn...DETACH 如果你要删除一个实体,但是它有外键无法删除,你就需要这个级联权限了。它会撤销所有相关的外键关联。
6、主键和候选键有什么区别? 表格的每一行都由主键唯一标识,一个表只有一个主键。 主键也是候选键。按照惯例, 候选键可以被指定为主键, 并且可以用于任何外键引用。...在 MySQL 中, 使用以下代码查询显示前 50 行: SELECT*FROM TABLE LIMIT 0,50; 17、可以使用多少列创建索引? 任何标准表最多可以创建 16 个索引列。...[am83fqk6g6.png] 49、在 Mysql 中 ENUM 的用法是什么? ENUM 是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用。...表格的每一行都由主键唯一标识,一个表只有一个主键。 主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。 58、如何使用 Unix shell 登录 Mysql?...65、列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况? 它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。
Spring Boot Actuator 更多内容可访问:https://juejin.cn/post/7052857798530433031#heading-710.外键、主键和索引?...主键的作用是保证数据的完整性和唯一性,加快数据检索速度。外键(Foreign Key):外键是用来建立表与表之间的关联关系的字段。它指向另一张表的主键,用来保持数据完整性和一致性。...外键可以确保数据之间的引用关系,并且在删除或更新操作时可以自动处理关联表中的数据。索引(Index):索引是为了提高数据检索速度而创建的数据结构。...但在实际开发中,因为性能的原因,所以我们很少用到真正的外键,也就是“物理外键”(使用 FOREIGN KEY 创建),而是在程序中使用逻辑外键来“建立”多张表的外键关系。11.TCP和UDP区别?...哈希表的核心思想是通过哈希函数将键映射到一个固定大小的数组索引上,将键值对存储在该索引位置上。当需要查找或插入数据时,通过哈希函数计算出键对应的索引,然后在该位置上进行操作,从而实现快速的数据访问。
在拆分之前,一个数据库由多个数据表构成,每个表对应着不同的业务。而拆分之后,则是按照业务将表进行归类,分布到不同的数据库中,从而将压力分散至不同的数据库。...相对于垂直分片,它不再将数据根据业务逻辑分类,而是通过某个字段(或某几个字段),根据某种规则将数据分散至多个库或表中,每个分片仅包含数据的一部分。...同时由于时间位是单调递增的,且各个服务器如果大体做了时间同步,那么生成的主键在分布式环境可以认为是总体有序的,这就保证了对索引字段的插入的高效性。例如 MySQL 的 Innodb 存储引擎的主键。...userId=xxx想数据库中插入数据,结果确实如预期的那样 ? 4..../ 分库分表以后,编写SQL时有诸多限制,很多之前在单库单表上的操作就不能用了,而且每次查询必须带上分片键,不然的话全表扫描 如果非要分表的话,不妨先考虑一下将数据存到ElasticSearch中,查询直接走
@JsonBackReference解决嵌套外链问题。 @RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。...@JoinColumn(name=”loginId”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。...数据库插入 @PrePersist和@PostPersist事件在实体对象插入到数据库的过程中发生: @PrePersist事件在调用persist()方法后立刻发生,此时的数据还没有真正插入进数据库...@JoinColumn(name=”loginId”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。...Spring Boot的核心功能 (1)独立运行的Spring项目 Spring Boot可以以jar包的形式进行独立的运行,使用:java -jar xx.jar 就可以成功的运行项目,或者在应用项目的主程序中运行
传统关系型数据库的单库单表已经很难支撑,如何高效存储和访问这些数据,成为业内急需解决的问题。...解决思路有两个方向: NoSQL数据库,非关系型数据库,天然集成了类似分布式分片的功能,支持海量数据存储,但是不具备事务管理 分库分表,对多个单库单表资源整合,并配备资源调度模块,从而形成一个具有海量数据储存的逻辑表...1、ShardingSphere-JDBC:定位为轻量级 Java 框架,在 Java 的 JDBC 层提供额外服务。...项目示例 首先,新建一个工程spring-boot-bulking-sharding-sphere,在pom.xml 文件中添加分库分表的 starter 依赖包 数据应该存储在哪一个数据库中 我们对user表做了分库分表,拆分成4个表,并分别归属到两个库中。分表键是id字段。
,如何添加数据 通过本篇文章,你可以get到以下技能点 POJO对象如何与表关联 如何向DB中添加单条记录 如何批量向DB中添加记录 save 与 saveAndFlush的区别 Java中变量命令推荐驼峰结构,那么 isDeleted 又如何与表中的 is_deleted 关联呢? POJO中成员变量的类型如何与表中的保持一致呢,如果不一致会怎样呢?...这个在POJO中怎么体现 一个表包含另一个表的主键时(主键关联,外键)等特殊的情况,POJO中有体现么?...小结 本文主要介绍了下如何使用JPA来实现插入数据,单个or批量插入,也抛出了一些问题,有的给出了回答,有的等待后文继续跟进,下面简单小结一下主要的知识点 POJO与表关联方式 注意几个注解的使用 如...DB表中列的关系 db插入的几种姿势 save 单个插入 saveAll 批量插入 插入时,如要求DO中成员为null时,用mysql默认值,可以使用注解 @DynamicInsert,实现最终拼接部分
,多个项目在企业成功转化,产生了较好的经济、社会和环境效益。...以下规约只针对本模块,更全面的文档参考《阿里巴巴Java开发手册》:五、MySQL数据库; 1、库名与应用名称尽量一致; 2、表名、字段名必须使用小写字母或数字,禁止出现数字开头; 3、表名不使用复数名词...说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表; 7、表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint (1 表示是,0...说明:uk_ 即 unique key;idx_ 即 index 的简称; 12、不得使用外键与级联,一切外键概念必须在应用层解决。...外键与级联更新适用于单机低并发,不适合分布式、高并发集群;级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度; 二、创建项目工程 1、父工程作用 pom类型、管理以来版本、放公共依赖;
新建数据库 新建数据库 mysql://localhost:3306/spring_boot ,必须的一个步骤。hibernate虽然会自动新建表,但是数据库还是要手动建好的。...使用Navicat新建本地数据库,连接名上面右键- >新建数据库 ->填写数据库信息 – > 确定。 在user表中,插入两条测试数据: 7. 测试 启动项目。...数据表的创建、数据类型和运算符、MySQL 函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与还原、MySQL 日志、性能优化、MySQL Repl...最后通过3个综合案例的数据库设计,进步讲述 MySQL在实际工作中的应用。...本书的重点是介绍如何使用Java配置类、lambda 表达式、Spring Boot以及反应式编程。
按照某个分片维度将存放在单一数据库中的数据分散地存放至多个数据库或表中以提升性能。数据分片的拆分方式分为:垂直分片和水平分片两种。 垂直分片 按照业务逻辑拆分的方式称为垂直分片,又称为纵向拆分。...将一个大的数据库按照业务逻辑分类,拆分为多个小的数据库,每个业务逻辑使用各自的数据库,从而将压力分散到不同的数据库中。垂直分片往往需要对架构和设计进行调整,类似微服务的概念。...相对于垂直分片,不根据业务逻辑分,而是通过某个(几个)字段,根据某种规则将数据分散到多个库或表中,每个分片仅包含数据的一部分。...仅支持 java,属于轻量级 java 框架,在 java 的 JDBC 层提高额外服务,相当于加强版 JDBC 驱动,因此可以与任何上层 ORM 框架配合使用,支持任意的数据库连接池,支持任意实现 JDBC...需要将所有的表列出(包含广播表),未列出的表将使用默认库。需给所有配置了分库分表的数据表加上一个 userId 字段,因为要根据 userId 来判断写入到哪个库中,否则回向所有库插入。
MySQL(数据库)1、主键、外键有什么区别?2、怎么理解三范式和反范式?3、范式和反范式的优缺点?4、什么是事务?5、事务有哪几个特性?6、什么是脏读、幻读、不可重复读?...33、MySQL 中的表锁有哪些?34、MySQL 中的行锁有哪些?35、MySQL 中的意向锁有什么用?36、MySQL 中的意向锁的分类?37、MySQL 中的意向锁是表锁还是行锁?...48、表分区有什么好处?49、表分区与分表的区别?50、MySQL 支持的分区类型有哪些?51、MySQL 分区表有哪些限制因素?52、MySQL 为什么要分库分表?53、MySQL 分库分表怎么做?...54、MySQL 分库分表工具有哪些?55、MySQL 分库分表会产生哪些问题?56、MySQL 批量插入,如何不插入重复数据?Redis(缓存)1、Redis 是什么?...16、Redis 持久化方式如何选择?17、Redis 内存满了怎么办?18、Redis 有哪些淘汰策略?19、Redis 如何提高多核 CPU 利用率?20、Redis 如何实现大量数据插入?
@JsonBackReference解决嵌套外链问题。 @RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。...一般在异步获取数据时使用,用于构建RESTful的api。...@JoinColumn(name=”loginId”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。...Java 的知识面非常广,面试问的涉及也非常广泛,重点包括:Java 基础、Java 并发,JVM、MySQL、数据结构、算法、Spring、微服务、MQ 等等,涉及的知识点何其庞大,所以我们在复习的时候也往往无从下手...,今天小编给大家带来一套 Java 面试题,题库非常全面,包括 Java 基础、Java 集合、JVM、Java 并发、Spring全家桶、Redis、MySQL、Dubbo、Netty、MQ 等等,包含
并发编程、Java基础、Spring、微服务、Linux、Spring Boot 、Spring Cloud、RabbitMQ、kafka等16个专题技术点,都是小编在今年金三银四总结出来的面试真题,...6、主键和候选键有什么区别? 表格的每一行都由主键唯一标识,一个表只有一个主键。 主键也是候选键。按照惯例, 候选键可以被指定为主键, 并且可以用于任何外键引用。...图片 34、为表中得字段选择合适得数据类型 图片 35、存储时期 图片 36、对于关系型数据库而言,索引是相当重要的概念,请回答 图片 37、解释 MySQL 外连接、内连接与自连接的区别 图片 38、...表格的每一行都由主键唯一标识,一个表只有一个主键。 主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。 58、如何使用 Unix shell 登录 Mysql?...65、列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况? 它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。
@JsonBackReference:解决嵌套外链问题。 @RepositoryRestResourcepublic:配合spring-boot-starter-data-rest使用。...@JoinColumn(name=”loginId”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键。...属性表示在使用”INSERT”语句插入数据时,是否需要插入该字段的值 updateable属性:updateable属性表示在使用”UPDATE”语句插入数据时,是否需要更新该字段的值 insertable...和updateable属性:一般多用于只读的属性,例如主键和外键等,这些字段通常是自动生成的 columnDefinition属性:columnDefinition属性表示创建表时,该字段创建的SQL...2)数据库插入 @PrePersist和@PostPersist事件在实体对象插入到数据库的过程中发生: @PrePersist事件在调用persist()方法后立刻发生,此时的数据还没有真正插入进数据库
领取专属 10元无门槛券
手把手带您无忧上云