SpringBoot 框架学习与应用(一)
1、创建SpringBoot项目

下面打红框的地方是根据你的需要来填写的!

下面需要勾选一些依赖!

填写项目名称,注意根目录,初学Web后台编程需要注意一下!

接下来,一个完整的SpringBoot的项目结构就好了!

2、了解项目结构和相关文件
2.1、了解Maven
通过《File》------《Settings》------《Maven》查看你的Maven路径

如果你没有Maven,请去官网下载并安装,检查是否安装成功的方法是:

当然,同样也可以通过cmd查看Maven的路径

那么,什么是Maven呢?它说白了是一个包管理工具,Java应用程序需要依赖很多jar包来完成编程。这一点和python很像,如果学过python,想必对pip这个命令很熟悉!pip和maven在包管理上有异曲同工之妙。
打开咱们的Maven,可以发现有用的信息其实很少:
(1)、请更换你的软件源
和pip一样,原始的软件源很慢!你需要去换源!建议用阿里源,代码如下:
xml
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
(2)、请关注你的jar包下载的位置

2.2、了解程序运行的入口

项目创建好后,你的程序运行入口就是《"项目名称"+Application》,从上面的代码你可以清晰地看到,main函数在这,众所周知,main函数是程序运行的入口!
2.3、了解一个关键文件:pom.xml

你会发现,所有的依赖就尽在其中!但是数据库的配置还不止如此!
3、运行第一个SpringBoot程序
3.1、后台向前端发送一个响应Hello World
java
package com.springdemo1.webdemo1.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author jiangzl
*/
@RestController
public class SayHello {
@RequestMapping("/hello")
public String sayHello() {
return "Hello World!";
}
}
这里的RestController就是控制后台给前端的Respond的!而Mapping就是从根目录开始的相对路径,前端展示如下:

3.2、前端向后端发送信息
首先写一个前端页面(很丑,只做演示):

相关的HTML代码是:
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Infomation</title>
<style>
.info {
margin: 0px auto;
height: 1000px;
width: 800px;
}
.content {
border: red solid 2px;
margin: 0px auto;
}
input {
font-size: 40px;
font-weight: bold;
margin: 10px auto;
width: 80%;
}
td {
font-weight: bolder;
font-size: 40px;
}
</style>
</head>
<body>
<form class="info" method="post" action="/hello">
<h2>学生信息填写</h2>
<table class="content">
<tr>
<td>学号:</td>
<td>
<input type="text" name="userId">
</td>
</tr>
<tr>
<td>姓名:</td>
<td>
<input type="text" name="userName">
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input type="password" name="userPassword">
</td>
</tr>
<tr>
<td>年龄:</td>
<td>
<input type="text" name="userAge">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="提交信息" style="width: 100%">
</td>
</tr>
</table>
</form>
</body>
</html>
提交后,看看后台是否能够接受并处理数据:

后端处理的代码:
java
package com.springdemo1.webdemo1.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* @author jiangzl
*/
@RestController
public class SayHello {
@RequestMapping("/hello")
@ResponseBody
public String sayHello(HttpServletRequest request) {
String userName = request.getParameter("userName");
return "Hello World! " + userName;
}
}
4、数据库及MyBatis的配置
先引用一张图来描述SpringBoot的项目结构及各个包、文件的作用:

这里引用的是:
4.1、配置阿里巴巴的Druid数据库连接池
xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
如果失效了,就去看:
https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter
去找最新的版本,替代version标签的值即可!
4.2、更改项目配置
yaml
# 端口的配置
server.port=8080
# 数据库访问配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#将webdemo1改成自己的数据库的名称
spring.datasource.url=jdbc:mysql://localhost:3306/webdemo1?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=jzl123456
mybatis.mapper-locations=classpath:mybatis/*.xml
4.3、以User表格为例,写Mapper.xml

xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:改mapper.xml映射文件的唯一标识并且必须和数据处理层的接口的路径相同-->
<mapper namespace="com.cody.sbootmybatis.sbootmybatis.mapper.UserMapper">
<!-- 必须添加property属性 ,区别于是否加主键-->
<resultMap id="User" type="User">
<id column="userid" property="userid" javaType="String" ></id>
<result column="username" property="username" javaType="String" ></result>
<result column="age" property="age" javaType="int" ></result>
<result column="password" property="password" javaType="String" ></result>
</resultMap>
<!--id的值必须和数据处理层的接口名一致-->
<!--此处的User-->
<select id="queryAllUser" resultType="User">
select * from user
</select>
<select id="queryUserById" parameterType="String" resultMap="User" resultType="User">
select * from user
<trim suffixOverrides="and" prefixOverrides="and">
<where>
<if test="userid!=null">
and userid = #{userid}
</if>
</where>
</trim>
</select>
<select id="queryUserByName" resultType="User" parameterType="String" resultMap="User">
select * from user
<trim suffixOverrides="and" prefixOverrides="and">
<where>
<if test="username!=null">
and username = #{username}
</if>
</where>
</trim>
</select>
<update id="UpdUser" parameterType="User">
</update>
<delete id="DelUser"></delete>
<insert id="AddUser" parameterType="User" >
insert into User value (${userid},#{username},${age},#{password})
</insert>
</mapper>
理解为什么要写一个Mapper.xml???
因为MyBatis是一个半自动的ORM模型(Object-Related-Mapping),于是你需要以配置XML文件的方式,告诉它关于你的表的信息!要知道,一个表就对应着一个对象,这个对象的属性和操作(增删改查)是需要你限定的!
于是,在我们上面的mapper.xml文件里就有了数据库表的内容和操作信息。
5、结束
本次内容只写到SpringBoot的项目配置、阿里巴巴Druid数据库连接池的配置、MyBatis与Mapper、Model的关系!
以及最简单的,后端向前端通信、前端向后端请求等内容。下一次有时间了我再以《学生登陆注册管理网站》项目作为着力点,深化SpringBoot的应用架构、数据模型、后台程序设计思想等内容。