Day09 MySQL,Mybatis入门 7.30

文章介绍了数据库操作的相关概念,包括笛卡尔积及其去除方法,内连接、外连接和子查询的使用。同时,详细阐述了事务的ACID特性以及如何在SQL中进行事务管理。此外,提到了Mybatis作为持久层框架在简化JDBC开发中的作用,以及JDBC作为Java操作数据库的标准接口。还讨论了数据库连接池的重要性和常用的连接池实现,如Druid,并提及了Lombok工具在简化Java代码方面的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.笛卡尔积: 指在数学中,两个集合A集合 和 B集合的所有组合情况

2.去除无效笛卡尔积:select * from A , B where A.外键 = B.主键;

内连接:相当于查询A、B交集部分数据

所有链接都可再表名后设置别名后,只能用别名指定字段

隐式内连接

select 字段列表  from  表1 ,表2  where  条件 ... ;

显式内连接

select  字段列表  from  表1  [ inner ] join 表2  on  连接条件 ... ;

外连接:分为两种,分别是:左外连接 和 右外连接。

select  字段列表   from   表1  left  [ outer ]  join 表2  on  条件 ... ;

select  字段列表   from   表1  right  [ outer ]  join 表2  on  条件 ... ;

查询一边的所有数据和两表交集的数据

子查询SQL语句中嵌套SELECT语句,称为嵌套查询

标量子查询(子查询结果为单个值)

select * from A where B_id = (select id from B  where 条件);

列子查询(子查询结果为一列)

select * from A where 字段1 > (select 字段1 from A where 条件);

行子查询(子查询结果为一行)

select * from A where B_id in (select id from B where 条件(一个字段多个值));

表子查询(子查询结果为多行多列)作为表

select e.*, d.* from (条件后还是多行多列数据作为表使用) e left join dept d on e.dept_id = d.id

  1. 事务是一组操作的集合,是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。

开启事务

START  TRANSACTION   或  BEGIN ;

事务内容

要处理的事务(如删除数据)

提交事务(成功时执行)

COMMIT;

回滚事务(出错时执行)

ROLLBACK;

  1. 四大特性(简称:ACID)

原子性(Atomicity)

事务是不可分割的最小操作单元,要么全部成功,要么全部失败。

一致性(Consistency)

事务完成时,必须使所有的数据都保持一致状态。

隔离性(Isolation)

数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。

持久性(Durability)

事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

  1. Mybatis:一款优秀的 持久层 框架,用于简化JDBC的开发。
  2. 是 Apache的一个开源项目iBatis, 2010年这个项目由apache迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
  3. 用Mybatis查询数据库中的用户数据

1.创建springboot工程,导入mybatis起步依赖、mysql驱动包

2.创建数据库表格,创建对应的实体类

3.编写application.properties,配置数据库连接信息

4.编写持久层接口UserMapper,及SQL

5.单元测试

  1. JDBC:( Java DataBase Connectivity ),就是使用Java语言操作关系型数据库的一套API,

  sun公司官方定义的一套操作所有关系型数据库的规范,即接口,数据库实现这接口,提供数据库驱动jar包,使用这套接口(JDBC)编程,执行的代码是驱动jar包中的实现类。

9.数据库连接池:是个容器,负责分配、管理数据库连接(Connection),重复使用现有数据库连接,而不是新建立。好处:1)资源重用,2)提升系统响应速度,3)避免数据库连接遗漏

10.常见的数据库连接池:1)C3PO, 2)DBCP, 3)Druid 4)Hikari(springboot默认),其中Druid(德鲁伊)是阿里巴巴开源的数据库连接池项目,功能强大,性能优秀,是Java语言最好的数据库连接池之一(添加方法:创建时勾选,或加依赖)

11.lombok是个实用的java工具包,可通过简单的注解来简化和消除一些必须有但显得很臃肿的Java代码

注解(在实体类上)

作用

@Getter/@Setter

为所有的属性提供get/set方法

@ToString

会给类自动生成易阅读的 toString 方法

@EqualsAndHashCode

根据类所拥有的非静态字段自动重写 equals 方法和 hashCode 方法

@Data

提供了更综合的生成代码功能(@Getter + @Setter + @ToString + @EqualsAndHashCode

@NoArgsConstructor

为实体类生成无参的构造器方法

@AllArgsConstructor

为实体类生成除了static修饰的字段之外带有各参数的构造器方法。

@Slf4j

private  static final Logger log = LoggerFactory.getLogger(LogExample.class);

@Builder

自动生成一个Builder类,以便我们可以轻松地构建对象实例

使用:创建时勾选,或加入依赖

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值