实训Day06

今日知识

  • 连接池
  • Spring整合Mybatis
  • Vue3

连接池

什么是连接池

一组连接组成的一个池子(集合),称为连接池

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用

作用

频繁地创建和销毁线程,实际上会消耗大量的系统资源,往往创建和消耗线程所耗费的时间比执行任务的时间还长,所以可以使用线程池提高效率

每次进行增删查改时,通过线程池可以避免频繁地创建和销毁 JDBC 连接,我们可以通过连接池复用已经创建好的连接,当调用 close 方法时,也并不是真正地释放资源,而是将连接释放会连接池中

原理

  • 最大连接数:

    • 如果没有空闲连接,且尚未达到连接的最大连接数,就是 创建一个新的连接,在将新的连接交给用户。如果没有空闲连接,且也已经达到最大连接数的限制,则程序会先让其等待一段时间,如果超过了等待的时间还没有其他空闲的连接,那么程序则会报栈内存溢出异常

    • 当用户获得连接使用完毕后,会将其连接归还给连接池 。在归还连接时,会对其连接池中的连接进行判断,看是否达到最大空闲数,如果已经达到看最大空闲数,已经没有空闲的位置了,那么就会直接将该对象丢弃

  • 最小连接数:

    • 如果归还连接时,连接池中的连接小于最小空闲数,则会创建新的对象,来保证连接数大于等于最小空闲数
  • 最大连接数 = 最小连接数 + 最大空闲数 = 最小空闲数 + 最大空闲数

连接池原理

Spring整合Mybatis

需要的依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.23</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.1</version>
</dependency>

配置数据库

连接数据库所需参数 jdbc.properties

1
2
3
4
url = jdbc:mysql://localhost:3306/test
driverClassName = com.mysql.cj.jdbc.Driver
username = ********
password = ********

将数据库连接池交由 Spring 管理

application.xml

1
2
3
4
5
6
7
8
9
10
11
<!-- 加载properties文件 -->
<context:property-placeholder location="classpath:jdbc.properties" system-properties-mode="NEVER"/>


<!-- 配置数据库连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${url}"/>
<property name="driverClassName" value="${driverClassName}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>

将 Mybatis 交由 Spring 管理

application.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- Spring 管理 sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- mybatis 主配置文件 -->
<property name="configLocation" value="classpath:mybatis.xml"/>
<!-- mybatis 映射配置文件 -->
<property name="mapperLocations">
<list>
<value>classpath:mapper/*Mapper.xml</value>
</list>
</property>
</bean>

<!-- Spring 创建 Mapper 的代理对象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.example.Mapper"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>

Mybatis 不需要多余配置 mybatis.xml

1
2
3
4
5
<configuration>
<typeAliases>
<typeAlias type="com.example.Entity.User" alias="User"/>
</typeAliases>
</configuration>

通过 Spring IOC 容器获取 SqlSessionFactory 对象

1
2
@Autowired
private SqlSessionFactory sqlSessionFactory;

Vue3

什么是Vue

是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助开发人员高效地开发用户界面

开发步骤

  • 新建文件夹
  • npm init -y
  • npm install vue -S
  • idea 打开该文件夹
  • 编写 html 界面
    • 引入 Vue.js
    • 编写 div[view]
    • 编写 js 创建 Vue 实例

实训Day06
http://yjh-2860674406.github.io/2023/07/10/编程/实训/Day06/
Author
Ye JinHua
Posted on
July 10, 2023
Licensed under