搭建spring boot的环境

JDK8 的安装和配置
IDEA 2019 编辑器的安装和配置
Maven 的安装和配置
MySql8 的安装和使用

下载安装包
首先到 JDK8 下载页面:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

选择对应的版本,然后下载,下载前需点击 Accept License Agreement,不然是无法点击下载的。

安装
下载完成后,点击安装包进行安装,需要注意的是,此步骤中 JDK 的安装路径,可以选择默认路径,也可以更改安装路径,比如十三就是更改安装路径到F:\Java\jdk1.8.0_171,其次是安装过程中将公共 JRE 取消安装,因为 JDK 中已经包含 JRE 了。

配置环境变量
右键"我的电脑",依次进入"属性"->“高级系统设置”->“环境变量”,点击新建按钮,首先添加JAVA_HOME变量,变量值为安装步骤中选择的安装路径F:\Java\jdk1.8.0_171:

此处输入图片的描述

之后编辑 PATH 变量,在变量的末尾添加;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

此处输入图片的描述

最后增加CLASS_PATH变量,同添加JAVA_HOME变量的过程一样,点击新建按钮,输入变量名,并输入变量值.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar,环境变量设置完成。

检查
打开命令提示符,输入java -version,输出版本号正确即可,十三安装的版本是1.8.0_171,命令行输出版本号也是1.8.0_171,则配置成功。
IDEA 全称 IntelliJ IDEA,是用于 java 语言开发的集成环境(也可用于其他语言),IntelliJ 在业界被公认为最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、Ant、JUnit、CVS 整合、代码审查、 创新的 GUI 设计等方面的功能可以说是超常的。

实验课程中使用的开发工具是 web ide,但是开发时在本机上开发还是占比较大的,在后续的课程实验中,虽然大多数会使用 web ide 作为演示工具,但是在本地开发时十三推荐大家使用 IDEA 进行编码工作,因为该编辑器对于 Spring Boot 开发的支持非常友好,不会出现一些莫名其妙的小问题影响开发进度。

下载安装包
首先到 IDEA 的官方网站,点击 IDEA 进入下载页面:https://www.jetbrains.com/idea/,注意:请选择 Ultimate 版本下载,点击DOWNLOAD按钮下载即可,如下图:

此处输入图片的描述

安装
下载完成后,点击安装包进行安装,过程比较简单,一直点击"next"按钮即可,由于文件比较大,可能会花一点时间。
下载安装包
首先到 Maven 的官方网站 http://maven.apache.org/download.cgi,点击 Maven 压缩包进行下载。

安装
选择目录进行安装,十三选择的是D:\maven目录,解压后,Maven 的安装目录为D:\maven\apache-maven-3.5.4,过程如下图:

此处输入图片的描述

之后则需要配置 Maven 命令的环境变量,同设置 JDK 环境变量过程一样,新增MAVEN_HOME变量,变量值为安装目录D:\maven\apache-maven-3.5.4,过程如下:

此处输入图片的描述

之后在修改PATH环境变量,在末尾增加;%MAVEN_HOME%\bin;即可。

此处输入图片的描述

配置文件
修改配置文件,文件目录是安装目录下的conf目录,找到settings.xml文件,修改为如下配置即可:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

<!-- 本地仓库的路径 十三设置的是D盘maven/repo目录下 (自行配置一个文件夹即可,默认是~/.m2/repository) -->
<localRepository>D:\maven\repo</localRepository>

 <!-- 配置阿里云镜像服务器 国内镜像速度会快一些 -->
 <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

</settings>

验证
安装配置成功后,需要验证 Maven 命令是否可以在本机正常使用,验证方法同 JDK 验证相同,打开 Windows 的命令提示符,输入以下命令:

mvn -v

IDEA 配置 Maven
由于 IDEA 默认安装了 Maven 环境,想要我们自己安装的 Maven 可以正常在 IDEA 中使用,则需要进行以下配置:

“File” --> “Settings” --> “Maven”

在这里插入图片描述

至此,关于 Maven 的相关安装和配置已经完成。

Mysql8的安装和使用
下载安装包
首先到 MySql8 Installer 的下载页面:https://dev.mysql.com/downloads/mysql/8.0.html

选择对应的版本然后点击"Dowanload"按钮,之后会跳转到下载页面,点击页面下方的No thanks, just start my download.即可进行下载。

安装
解压至安装目录
首先是确定 MySql8 的安装目录,可以自行决定,十三是将其安装在F:\mysql-8.0.11-winx64目录下,解压安装包至安装目录下即可。

配置文件
在安装目录下新建配置文件my.ini,配置文件中写入:

[mysqld]
port=3306
basedir =F:\mysql-8.0.11-winx64
datadir =F:\mysqlData\
max_allowed_packet = 20M

保存即可,其中datadir为数据存储目录,十三将其放在了F:\mysqlData\目录下,你可以对应的进行修改。

初始化 MySql8
打开命令行,进入 MySQL 的 bin 目录下,之后进行初始化,命令为:

mysqld --initialize --console

初始化成功后,命令行会打印出 root 用户的初始密码(记得保存,如果没有保存或者忘记的话,删掉初始化的 datadir 目录再次进行初始化即可),过程如下图:
在这里插入图片描述
启动 MySQL 服务
在启动服务前,首先要将 MySQL 安装为 Windows 的系统服务,在 MySQL 的 bin 目录执行命令如下:

mysqld --install mysql8

其中 MySql8 为服务名称,你可以自行修改成想要的名字。

服务注册成功后,就可以启动 MySQL 服务了,执行命令: net start mysql8

登录 MySql8
服务启动成功后,则可以登录 Mysql 服务器了,在 bin 目录下执行mysql -uroot -p,输入刚刚保存的密码即可,不过首次登录 Mysql 时需要修改 root 用户密码,不然是无法进行操作的,因此需要执行修改 root 用户密码操作:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '131313';
FLUSH PRIVILEGES;

在这里插入图片描述
文章来自https://www.lanqiao.cn/courses/1244/learning/?id=9843

mvn 命令行创建 Spring Boot 项目
打开命令行并将目录切换到对应的文件夹中,之后运行以下命令:

mvn archetype:generate -DinteractiveMode=false -DgroupId=com.lou.springboot -DartifactId=springboot-demo -Dversion=0.0.1-SNAPSHOT

启动过程过程如下图所示,首先点击下方工具栏中的 Terminal 打开命令行窗口,之后在命令行中输入命令 mvn spring-boot:run并执行该命令即可启动项目,如下图所示,Spring Boot 项目启动成功。

此处输入图片的描述

java -jar 命令启动
项目初始化时我们选择的打包方式为 Jar ,因此项目开发完成进行打包时的结果是一个 Jar 包, Java 运行 Jar 包的命令为 java -jar xxx.jar ,结合以上两个原因我们可以使用这种方式启动 Spring Boot 项目,接下来我们来演示这一过程。

首先,点击下方工具栏中的 Terminal 打开命令行窗口

之后使用 Maven 命令将项目打包,执行命令为:mvn clean package -Dmaven.test.skip=true,等待打包结果即可

打包成功后进入 target 目录,cd target

最后就是启动已经生成的 Jar 包,执行命令为java -jar springboot-demo-0.0.1-SNAPSHOT.jar

Spring Boot整合jdbc Template
在早期项目开发过程中,连接数据库使用的是 JDBC(Java Data Base Connectivity),它是一套通用的访问数据库的 API 接口。各大数据库厂商只需要提供满足要求的数据库驱动,数据库开发人员便可以通过统一的格式去访问不同的数据库。一般情况下,执行数据库操作需要经过下面几个步骤:

public static void main(String[] args) {
    Connection connection = null;
    Statement statement = null;
    try {
        // 1.注册数据库驱动
        Class.forName("com.mysql.jdbc.Driver");
        // 2.获取数据库连接
        connection = DriverManager.getConnection("数据库连接URL", "用户名", "密码");
        // 3.创建执行SQL语句的 Statement 或 PrepareStatement
        statement = connection.createStatement();
        // 4.执行语句,获取执行结果
        ResultSet resultSet = statement.executeQuery("SQL语句");
        // 对查询的结果进行处理
        while (resultSet.next()) {
            resultSet.getInt("列标签");
            ...
        }
    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        // 5.释放资源
        try {
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

优化数据库连接
针对数据库连接部分,数据库驱动、URL、用户名和密码这些信息都是固定的字段,可以将这些属性值抽取出来写入到配置文件中。

其次,通过 DriverManager 的 getConnection() 方法每次获取连接时都要重新建立与数据库的连接,频繁的创建与关闭连接会大大增加系统的开销。这时我们可以考虑事先创建一些数据库连接备用,把这些连接放到连接池中。当需要的时候,从连接池中取出一个数据库连接;当数据库连接不需要的时候,不是关闭连接,而是把连接放回去,等待下一个线程使用。虽然连接池会消耗一定的空间,但是它减少了创建和销毁连接的系统开销,提高了响应速度,同时也提高了连接的可管理性,是一种以空间换时间思想的具体应用。

经过不断的优化,最终采用 DataSource 来替代并扩展 DriverManager 的功能,它不仅实现了 DriverManger 的功能即提供数据库连接,还额外实现了数据库连接池和分布式事务。当在程序中配置了 DataSource 后,你不必编写连接数据库的代码,直接通过 DataSource.getConnection() 便可以获取数据库连接。

DataSource 其实是一种约定好的接口,对于 DataSource ,各大厂商已经提供了比较好的数据源实现,常见的数据源如下表所示:

框架 DataSource 实现类
DBCP org.apache.commons.dbcp.BasicDataSource
C3P0 com.mchange.v2.c3p0.jboss.C3P0PooledDataSource
Mybatis org.apache.ibatis.datasource.pooled.PooledDataSource
Druid com.alibaba.druid.pool.DruidDataSource
Hikari com.zaxxer.hikari.HikariDataSource
以上框架中的 DataSource 虽然实现类不同,但因为它们实现了统一的 DataSource 接口,所以可以混合使用,例如在 Mybatis 框架中既可以使用自带的数据源,也可以使用 DBCP 数据源,还可以使用 C3P0 数据源,只需要进行引入依赖包并进行相关的配置。具体使用哪种数据源,你可以根据各个数据源的特点进行选择。

在配置 ORM 框架属性时,一般都会配置 spring.datasource.type 属性,该属性的值表示启动哪种 DataSource。在 Spring Boot 2.x 版本中,在不指定 spring.datasource.type 属性的情况下,默认帮我们自动配置了 HikariDataSource 。

优化数据库操作
针对数据库操作进行优化,其实就是对 Statement 执行 SQL 语句以及获取返回值部分更近一步的封装。JdbcTemplate 是 Spring 自带的 ORM 框架,原理较为简单,下面我们来简要分析一下。

JdbcTemplate 单从字面意思来理解的话,提供了有关 JDBC 的模板方法,借助第三方工具看一下 JdbcTemplate 提供了哪些模板方法。
首先,对于数据库查询的方法,在上图中以 queryXXXX 命名的方法,最后都会执行到 PrepareStatement.executeQuery 方法。至于其中的 PrepareStatement 则是通过 Connection 获取,Connection 通过 DataSource.getConnection() 获取。其他查询方法,虽然参数不同,返回值也不同,但执行过程都是类似的。

在这里插入图片描述
对于数据库更新(增删改)的方法,在上图中以 update 命名的方法,最后都会执行到 PrepareStatement.executeUpdate 方法。
在这里插入图片描述
对于数据库批量修改的方法,在上图中以 batchUpdate 命名的方法,最终都会执行到 PrepareStatement.executeBatch() 方法。有兴趣可以类比上面的画图过程,自己查看一下。

总结一下,数据持久层框架主要对两个方面进行了优化。数据源(DataSource)对数据库的连接信息进行了封装,提供了数据库连接池和获取连接的功能。同时,从 JdbcTemplate 的角度讲,更进一步的封装了 JDBC 操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值