数据库开发

大纲

JDBC基础
数据库连接池
SQL注入与防范
事务
MyBatis

1. JDBC基础

JDBC URL: jdbc:mysql://10.164.172.20:3306/cloud_study
jdbc:协议
mysql:子协议(mysql/oracle:thin/microsoft:sqlserver)
other:子名称(主机+端口+数据库)

构建步骤

  1. 装载驱动程序
  2. 建立数据库连接
  3. 执行SQL语句
  4. 获取执行结果
  5. 清理环境(释放连接)

业务场景

  1. 过滤条件比较弱,一次可能读出较多记录。
  2. 读取数据库表中所有记录。

海量数据读取—内存溢出oom—游标,分批读取

  1. 读取数据库表大字段

面临即使读取一条记录,也可能溢出–二进制流

  1. 海量数据单条插入—批处理
  2. 字符集设置
    Server—DataBase—Table—Column
    优先级递增

2. 数据库连接池

建立连接
MySQL客户端(A) 与 MySQL服务端(B)
请求建立连接(A—>B)
发送随机密码种子(B—>A)
发送加密密码(A—>B)
连接建立成功(B—>A)
可以看出一次数据库的连接建立需要耗费大量时间开销,代价很大。

3. SQL注入与防范

  • 数据库注入
    输入SQL命令—> 欺骗服务器---->恶意SQL
  • 根源
    SQL命令是动态拼接的。
  • 防范
    参数化SQL

4. 事务

  • A:原子性
  • C:一致性
  • I:隔离性

隔离机制(4):
1.
2.
3.
4.

  • D:持久性

  • 外部加锁:
  1. 由应用程序添加,锁依赖关系容易分析
  2. 共享锁:
  3. 排他锁:
  • 外部加锁:
  1. 为了实现ACID特性,由数据库系统内部自动添加
  2. 加锁规则繁琐,与SQL执行计划、事务隔离级别、表索引结构有关

快照读(不加锁) 当前读(加锁)

5. MyBatis

你可能感兴趣的:(网易课程,数据库,数据库开发,mysql)