第一步:搭建一个完整的springboot工程,并能通过浏览器访问
第二步:成功访问数据库,并实现简单登录
Idea20201.1 + maven 3.6.3 +jdk 8 +mysql 8.0搭建一个完整的springboot项目
第一步:搭建一个完整的springboot工程,并能通过浏览器访问
1.打开IDEA点击File->new->project;
2.完善项目信息,组名:nxz,项目名可做修改;最终建的项目名为:springboot-test,src->main->java下包名会是:com->nxz->springboot-test;注意Type选项是Maven,Java Version是8(匹配1.8jdk),我第一次搭建的时候没注意,导致后面一直出问题,点击next;
3.Web下勾选Spring Web,有些版本没有这个选项,就选择Spring Web ;Template Englines勾选Thymeleaf;SQL勾选:MySQL Driver,JDBC API 和 MyBatisFramework三项;然后next
4.选择项目路径,点击finish;打开新的窗口;
5.点击右侧的Maven,点击设置(扳手图标)进行项目Maven仓库的配置;
(1)选择本地Maven路径;(2)勾选配置文件后边的选项,然后修改为本地Maven的配置文件,它会根据配置文件直接找到本地仓库位置;
6.配置完后,如果没有自动导包,可以点击左上角重新导包按钮,或者呢个下载按钮,选择下载所有源文件和文档
7.在templates文件下新建index.html页面,作为启动的初始页面;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello</title>
</head>
<body>
springboot测试启动页面!
</body>
</html>
8.在com.nxzspringboot-test下新建controller文件夹,在controller文件夹下建一个简单的HelloController类;(Controller类要添加@Controller注解,项目启动时,SpringBoot会自动扫描加载Controller)注意:有些朋友new选项里面没有Package,选择java文件夹右键,找到Mark Directory as 选择Sources Root,把Java文件夹标记一下,然后再右键新建Controller文件夹就有Package这个选项了
package com.nxz.springboottest.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping("/index")
public String sayHello() {
return "index";
}
}
9.在resources文件夹下application中先配置DataSource基本信息,application文件有两种文件格式,一种是以.properties为后缀,一种是以.yml为后缀的,两种配置方式略有差别,在这我是用.yml后缀的文件格式。右键application文件选择Refact,选择Rename,将后缀改为yml;(同样的注意自己的resources文件夹右下角有没有那个橘黄色小标记,没有的话自己Mark一下,选择resources root)
spring:
datasource:
name: text #数据库名
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root #账户
password: 12345678 #密码
driver-class-name: com.mysql.cj.jdbc.Driver #链接驱动
mybatis:
mapper-locations: classpath:mapper/*.xml #配置映射文件
最终的目录结构如下图就可以测试启动了:
10.选择SpringbootTestApplication.java,点击右键运行项目启动SpringbootTestApplication.java
11.在浏览器中输入localhost:8080/index,回车显示初始的index界面;到这项目的初步搭建已经完成,
第一步遇见的问题:
1,JAVA‘无效目标发行版 17’的解决方案
JAVA‘无效目标发行版 17’的解决方案_普通网友的博客-CSDN博客_无效目标发行版
检查本地配置,1.8的jdk改完如下配置就可正常启动
2.Caused by: java.nio.charset.MalformedInputException: Input length = 1
Caused by: java.nio.charset.MalformedInputException: Input length = 1_我刚上山的博客-CSDN博客3.Springbot启动报错-类文件具有错误的版本 61.0, 应为 52.0
把pom文件中的
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.2</version>
把3.0.2换成2.7.5就行
类文件具有错误的版本 61.0,应为52.0_我不是乌鸦的博客-CSDN博客
第二步:成功访问数据库,并实现简单登录
下面可以下一些简单的业务逻辑,比如从数据库获取信息,登录之类的简单功能;
搭建完成总体的目录结构如下图:
.SpringBoot项目大概分为四层:
(1)DAO层:也就是本项目中的Mapper,其间包括XxxMapper.java(数据库访问接口类),XxxMapper.xml(数据库链接实现);
(2)Bean层:也叫model层,模型层,entity层,实体层,就是数据库表的映射实体类,存放POJO对象;
(3)Service层:也叫服务层,业务层,包括XxxService.java(业务接口类),XxxServiceImpl.java(业务实现类);(可以在service文件夹下新建impl文件放业务实现类,也可以把业务实现类单独放一个文件夹下,更清晰)
(4)Web层:就是Controller层,实现与web前端的交互。
具体代码如下:
UserBean.java
package com.nxz.springboottest.bean;
public class UserBean {
private int id;
private String name;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
LoginController.java
package com.nxz.springboottest.controller;
import com.nxz.springboottest.bean.UserBean;
import com.nxz.springboottest.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class LoginController {
//将Service注入Web层
@Autowired
UserService userService;
@RequestMapping("/login")
public String show(){
return "login";
}
@RequestMapping(value = "/loginIn",method = RequestMethod.POST)
public String login(String username){
UserBean userBean = userService.loginIn(username);
if(userBean!=null){
return "success";
}else {
return "error";
}
}
}
HelloController.java
package com.nxz.springboottest.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping("/index")
public String sayHello() {
return "index";
}
}
UserMapper.java
package com.nxz.springboottest.mapper;
import com.nxz.springboottest.bean.UserBean;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper {
UserBean getInfo(String name);
}
UserService.java
package com.nxz.springboottest.service;
import com.nxz.springboottest.bean.UserBean;
public interface UserService {
UserBean loginIn(String name);
}
SpringbootTestApplication.java
package com.nxz.springboottest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootTestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootTestApplication.class, args);
}
}
UserMapper.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" >
<mapper namespace="com.nxz.springboottest.mapper.UserMapper">
<select id="getInfo" parameterType="String" resultType="com.nxz.springboottest.bean.UserBean">
SELECT * FROM user WHERE username = #{name}
</select>
</mapper>
jquery-3.1.1.min.js
引入jquery,如果调用不到jquery,参考后面问题解决方案
error.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>error</title>
</head>
<body>
<h1>登录失败!</h1>
</body>
</html>
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello</title>
</head>
<body>
springboot测试启动页面!
</body>
</html>
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="/jquery-3.1.1.min.js"></script>
<!-- <script th:src="@{https://cdn.bootcdn.bootcdnbootcdnnet/ajax/libs/jquery/3.6.0/jquery.min.js}"></script>-->
</head>
<body>
<!--姓名:-->
<!--<input type="text" id="name">-->
<!--<br/><br/>-->
<!--密码:-->
<!--<input type="text" id="password">-->
<!--<br/><br/>-->
<!--<input type="button" value="登录" onclick="login();"/>-->
<form action="/loginIn" method="post">
<div style="padding: 10px">
<label for="username">用户名:</label><input id="username" name="username" type="text"><br/>
</div>
<div style="padding: 10px;margin-left: 12px">
<label for="password">密码: </label><input id="password" name="password" type="password"><br/>
</div>
<input type="submit" value="登录">
</form>
</body>
<script>
// function login(){
// var name=$("#name").val();
// var password=$("#password").val();
// alert(name);
// $.ajax({
// type:"post",
// url:"loginIn",
// success:function(data){
// console.log(data)
// }
// });
// }
</script>
</html>
success.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>success</title>
</head>
<body>
<h1>登录成功!</h1>
</body>
</html>
application.yml
spring:
datasource:
name: text #数据库名
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root #账户
password: 12345678 #密码
driver-class-name: com.mysql.cj.jdbc.Driver #链接驱动
mybatis:
mapper-locations: classpath:mapper/*.xml #配置映射文件
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.nxz</groupId>
<artifactId>springboot-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-test</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-groovy-templates</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
第二步遇见的问题:
1.关于springboot访问不到static里面的js文件解决方法
关于springboot访问不到static里面的js文件解决方法(仅供参考)-pudn.com