MySQL基础知识学习——第一课

DBC 1.6K 0

一、ORM关系对象映射做了什么?

  • 思考题:Mysql与springboot整合的流程步骤是怎样的?
  • 对象关系映射,是一种规范,调节目前面向对象的程序设计与主流的关系型数据库之间发展不同步的问题,关系到对象的映射

让编程时可以全身心的用面向对象的设计思想去编程,用对象映射关系数据表,在持久化时,可以直接操作对象进行持久化

  • ORM关系对象映射图

MySQL基础知识学习——第一课插图

二、Mysql与Java实战之JdbcTemplate整合方式

  • 什么是jdbc?
    • Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法
  • 什么是jdbcTemplate?
    • Spring 的 JDBC Templet 是 Spring 对 JDBC 使用的一个基本的封装。他主要是帮助程序员实现了数据库连接的管理,其余的使用方式和直接使用 JDBC 没有什么大的区别。
  • 环境准备
    • 在linux或者mac安装MySql5.7版本并打开MySql服务
    • 建表语句:
create database xdclass_mysql;
​
create table user (id bigint auto_increment comment '自增id',name varchar(64) default '' not null comment '用户名称', primary key (id)) default charset=utf8mb4;
​
grant all privileges on xdclass_mysql.* to 'xdclass'@'%' identified by 'xdclass';
​
flush privileges;
    • 配置数据源
#通用数据源配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/xdclass_mysql?charset=utf8mb4&useSSL=false
spring.datasource.username=xdclass
spring.datasource.password=xdclass
# Hikari 数据源专用配置
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.minimum-idle=5
    • 引入web项目依赖和jdbc对应jar包的maven依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>6.0.6</version>
</dependency>

三、这种硬编码的方式,其实已经不推荐了

编码我也直接放出,说不定什么时候有用呢?

UserController

点击查看完整内容

RestItemResult

点击查看完整内容

UserDao

点击查看完整内容

UserDaoImpl

点击查看完整内容

User

点击查看完整内容

四、HTTP应用增删改查协议剖析

补充一个知识,未来可能有用

  • HTTP协议简介
    • HTTP 协议(Hypertext Transfer Protocol,超级文本传输协议),顾名思义,是关于如何在网络上传输超级文本(即 HTML 文档)的协议。HTTP 协议规定了 Web的基本 运作过程,以及浏览器与Web服务器之间的通信细节。HTTP协议采用客户/服务器通信模式,服务器端为 HTTP 服务器,它也称做 Web 服务器;客户端为 HTTP 客户程序,浏览器是最常见的 HTTP客户程序。
    • 如图所示,在分层的网络体系结构中,HTTP协议位于应用层,建立在 TCP/IP 协议的基础上。HTTP 协议使用可靠的 TCP 连接,默认端口是 80 端口

    MySQL基础知识学习——第一课插图2

  • 当用户在浏览器中输入一个指向特定网页的 URL 地址时,浏览器就会生成一个 HTTP 请求,建立与远程 HTTP 服务器的 TCP 连接,然后把 HTTP 请求发送给远程 HTTP 服务器,HTTP 服务器再返回包含相应网页数据的 HTTP 响应,最后浏览器把这个网页显示出来。当浏览器与服务器之间的数据交换完毕,就会断开连接。
  • JAVA socket套接字创建监听请求实战
  • 查看端口占用 mac/linux:lsof -i:8080, windows: netstat -aon|findstr "8080"
  • http 0.9==>http1.0==>http1.1==>http2==>http3(后续发展趋势是quic)
    • 1.0 POST、DELETE、PUT、HEADER
    • 1.1长连接 管道化
    • 2.0 二进制分祯 多路复用:在共享TCP链接的基础上同时发送请求和响应

MySQL基础知识学习——第一课插图4

五、JdbcTemplate存在问题与Mybatis的引入

  • 思考jdbcTemplate的缺点
    • 将sql语句硬编码到java代码中,如果sql语句修改,需要重新编译java代码,不利于系统维护
    • 在向statement中设置参数,对站位符位置和设置参数数值,硬编码到java代码中
    • 从result结果集中遍历数据时,存在硬编码
  • 解决方案
    • 把sql语句定义到xml配置文件里
    • 将结果集自动映射成java对象 UserInfo List int count
  • 现成工具MyBatis
    • MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
  • 工作原理

     

MySQL基础知识学习——第一课插图6

六、Mybatis

温馨提示

避免篇幅过长,放在下一章,可点击下面传送门 [aru_47]

基于Mybatis的mysql数据实战——第二课

3年前 (2021-10-30) 0
MySQL基础知识学习——第一课插图8

发表评论 取消回复
表情 图片 链接 代码

分享