IDEA搭建一个完整的SpringBoot工程,成功访问数据库并实现简单登录

第一步:搭建一个完整的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

 

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
搭建Spring Boot工程的基本流程如下: 1. 环境准备: - 安装Java开发工具包(JDK)并配置环境变量 - 安装开发工具,如IntelliJ IDEA、Eclipse等 2. 创建Spring Boot项目: - 使用IDE工具创建一个新的Spring Boot项目 - 在IDE中选择创建一个新的Maven或Gradle项目,并选择Spring Boot作为项目模板 - 根据提示填写项目信息,如项目名称、包名等 3. 项目结构: - 项目结构可以根据实际需求进行调整,但一般包括以下几个核心文件夹: - `src/main/java`:存放Java代码 - `src/main/resources`:存放配置文件和资源文件 - `src/test/java`:存放测试代码 - `pom.xml`(如果使用Maven)或`build.gradle`(如果使用Gradle):构建工具的配置文件 4. 添加依赖: - 在项目的构建配置文件(pom.xml或build.gradle)中添加所需的依赖,如Spring Boot的起步依赖(Starter POMs)、数据库驱动、Web框架等 - 保存文件后,构建工具将自动下载并管理所需的依赖库 5. 编写代码: - 在`src/main/java`目录下创建Java类,编写业务逻辑和处理请求的代码 - 可以使用注解(如`@RestController`、`@RequestMapping`等)来定义控制器和路由 - 在`src/main/resources`目录下创建配置文件,如数据库配置、日志配置等 6. 运行项目: - 在IDE中运行Spring Boot项目,或使用构建工具命令行运行项目 - Spring Boot会自动检测并启动应用程序,默认监听端口为8080 - 可以通过访问http://localhost:8080来访问应用程序 以上是搭建Spring Boot工程的基本流程。在实际开发中,还可以根据需求添加其他模块、配置文件等。同时,建议阅读Spring Boot官方文档和参考其他示例项目,以更好地理解和应用Spring Boot框架。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值