程序员潇然 发表于 2022-11-21 15:18:57

程序是如何与MYSQL 数据库连接起来的(一)

日常开发中,我们主要是开发业务端代码,对于数据库,主要就是CRUD,其他的可能还有一些基本的数据库维护等。

### 应用-数据库模型

!(data/attachment/forum/202211/21/145015vdzgu0ez8ujmyy88.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

那么,我们的SQL到底是如何与数据库交互的呢?

两个应用必然需要通信,否则无法执行SQL的执行以及结果的返回,而且对于已发布应用,通常应用于数据库也都是完全不会在一台计算机上,更是需要网络进行通信。

### 驱动程序

只要进行应用开发,涉及到数据库,必然需要用到数据库驱动程序。

这就是应用与数据库的桥梁。

不仅仅是java对于其他语言,对于其他语言也都有可用的驱动程序,用来对MYSQL进行访问。

!(data/attachment/forum/202211/21/145216ttth6thhvhvtf755.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

```xml
      <!-- Mysql Connector -->
      <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
      </dependency>
```

之前还会有一个形如 `<version>xxxx</version> `

用来标识版本号,现在大都使用springboot ,版本号容易管理,此处就不需要额外写了

### 数据库连接池

对于数据库连接的创建和销毁,是比较消耗资源的,所以池化技术在这个场景下很适用,所以也就必然有了数据库连接池,连接池负责数据库连接的管理,其中包括:调度分配、创建、销毁等。

!(data/attachment/forum/202211/21/150327t7kk7k45y7ko57wk.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

所以这就是我们为什么开发应用的时候,除了一些必须要的配置,还需要引入数据库驱动以及数据库连接池的原因,这是这种业务架构的刚需:必须要数据库驱动,也必须不能直接创建连接,那样会浪费性能。

而对于MYSQL自身来说,他也需要面对外面很多的连接,他自身其实也是有池化连接的。

!(data/attachment/forum/202211/21/150947pejqhj11y0y9r0jg.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

### 常见数据库连接池

`https://www.crazybytex.com/thread-175-1-1.html`

关于java数据库连接池的一些应用,可以参考上文,有简单介绍到一些常见的数据库连接池,常见的数据库连接池有DBCP,C3P0,Druid等等,作为java应用开发者,必然需要和他们打交道。

### 小结

本文主要是介绍了应用-数据库模型,以及简单介绍了连接池的重要性。


!(data/attachment/forum/202206/16/141330jha7st9soow8772i.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "common_log.png")
`转载务必注明出处:程序员潇然,疯狂的字节X,https://crazybytex.com/thread-225-1-1.html `
页: [1]
查看完整版本: 程序是如何与MYSQL 数据库连接起来的(一)