SpringBoot+JPA实现连接数据库及简单的登录页面(超详细,附全部源码)

首先要学会创建SpringBoot项目。(可自行查阅网上资料)

项目结构

在这里插入图片描述

Pom.xml(引入相关依赖)

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

entity层

数据库表如下:
在这里插入图片描述
代码如下:

import lombok.Data;

import javax.persistence.*;

@Data
@Entity
@Table(name = "user1" )
public class user {

    @Id
    String username;
    String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}

Dao层

import com.b505.demotest.code.entity.user;
import org.springframework.data.jpa.repository.JpaRepository;

public interface userDao extends JpaRepository<user, Integer> {
    public user getByPasswordAndUsername(String username,String password);
}

Service层

接口

public interface loginService {
public user getUser(String username, String password);
public void insertUser(user user);
}

实现接口类

@Service
public class loginServiceImpl implements loginService {

    @Autowired
    private userDao userDao;

    @Override
    public user getUser(String username, String password) {
        return userDao.getByPasswordAndUsername(username,password);
    }

    @Override
    public void insertUser(user user) {
        userDao.save(user);
    }

}

Controller层

@Controller
public class userController {
    @Autowired
    loginServiceImpl userServiceImpl;
    @RequestMapping(value="/login")
    public String login(){
        return "login";
    }
    @RequestMapping("doLogin")
    public String doLogin(user user, Map<String,Object> map){
        user user1 =  userServiceImpl.getUser(user.getPassword(),user.getUsername());
        if(user1 == null){
            map.put("msg","登入失败");
        }else{
            map.put("msg","登入成功");
        }
        return "success";
    }
    @RequestMapping("/regist")
    public String regist(){
        return "regist";
    }
    @RequestMapping("doRegist")
    public String doRegist(user user, Map<String,Object> map){
        userServiceImpl.insertUser(user);
        map.put("msg","注册成功");
        return "success";
    }
    }

编写登录页面

在这里插入图片描述
login页面

<head>
    <meta charset="UTF-8" />
    <title>springboot登录</title>
    <style type="text/css">
        ul li{
            list-style: none;
        }
    </style>
</head>
<body>
<div >
    <form name="form" accept-charset="utf-8"  action="/doLogin">
        <ul >
            <li>
                <label  class="input-tips2">用户名:</label>
                <div class="inputOuter2">
                    <input type="text" id="username" name="username" maxlength="16" />
                </div>
            </li>
            <li>
                <label class="input-tips2">密码:</label>
                <div >
                    <input type="password" id="password"  name="password" maxlength="16"/>
                </div>
            </li>
            <li>
                <div >
                    <input type="submit" value="登录"/>
                    <a href="/regist">注册</a>
                </div>
            </li>
        </ul>
    </form>
</div>
</body>

regist页面

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
<form name="form" accept-charset="utf-8"  action="/doRegist">
    <ul >
        <li>
            <label  class="input-tips2">用户名:</label>
            <div class="inputOuter2">
                <input type="text" id="username" name="username" maxlength="16" />
            </div>
        </li>
        <li>
            <label class="input-tips2">密码:</label>
            <div >
                <input type="password" id="password"  name="password" maxlength="16"/>
            </div>
        </li>
        <li>
            <div >
                <input type="submit" value="确定"/>

            </div>
        </li>
    </ul>
</form>
</body>
</html>

success页面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p th:text="${msg}"></p>
</body>
</html>

配置

server.port=9555
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.check-template-location=true
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.mode=HTML5

#服务器端
#数据库基本配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=你的数据库密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#修改默认生成策略,数据库驼峰式命名
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

#用来在控制台输出JPA自动生成的sql语句。
spring.jpa.show-sql=true
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=update

最后,启动项目

访问 localhost:9555/login 如下图
在这里插入图片描述在这里插入图片描述
输入与数据库对应的账号密码,登陆成功
在这里插入图片描述

全部源码下载

下载连接
蓝奏云:点击下载

注意

需要修改以下内容:
1.数据库的账户及密码(账户默认为root)
如图所示位置
2.需要配置Maven环境(网上自行查阅)。
3.需要在IDEA里下载Lombok插件。

仅为了记录一下,以供日后参考。

至此结束,希望可以帮助到你。


版权声明:本文为weixin_44153063原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。