Springboot访问MySQL简单实现
初学Springboot,通过Springboot访问MySQL数据实现简单登录验证功能。
环境准备:Eclipse、MySQL。
以上两个工具的安装配置可参考前两篇博客。
一、创建数据库并建表
(1)打开MySQL可视化管理工具,这里以MySQL Workbench为例。
(2)点击Database->Connect to Database
(3)在弹出的窗口点击OK
(4)输入密码
(5)点击File->New Query Tab,输入以下脚本内容,新建数据库firstdb,新建表user,插入数据username:temp、password:123456。
create database firstdb;
use firstdb;
create table user(
`username` varchar(10) not null,
`password` varchar(10) not null
);
insert into user values ('temp','123456');
select * from user;
执行成功如下图所示
二、新建Springboot项目
(1)打开File->New->Other->Springboot->Spring Starter Project,点击next。
(2)根据实际情况修改,否则保持默认即可,完成后点击next。
(3)选择依赖。通过JDBC访问数据库,勾选Spring Web、MySQL Driver、JDBC API,点击finish即可。
(4)创建好后的目录如下图所示
三、创建登录页面
在src->main->resources->static目录下创建login.html,编写如下代码,实现简单登录界面。
<!DOCTYPE html>
<html lang="zn">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<h2>登录页面</h2>
<form action="/login" method="post" >
用户名:<input type="text" name="username">
<br>
密   码:<input type="password" name="password">
<br>
<input type="submit" value="登录" name="提交">
</form>
</body>
</html>
效果如图所示
四、用Springboot访问MySQL
(1)修改application.properties,填入以下代码:
spring.datasource.url=jdbc:mysql://localhost:3306/firstdb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5
spring.datasource.validation-query=SELECT 1
spring.datasource.test-on-borrow=false
spring.datasource.test-while-idle=true
spring.datasource.time-between-eviction-runs-millis=18800
spring.datasource.jdbc-interceptors=ConnectionState;SlowQueryReport(threshold=0)
(2)创建实体类User
package com.example.demo;
import java.io.Serializable;
public class User implements Serializable{
private static final long serialVersionUID = 1L;
private String username; //要与列名相同
private String password; //要与列名相同
public String getName() {
return username;
}
public void setName(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
(3)创建UserDao类
package com.example.demo;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import com.example.demo.User;
@Repository
public class UserDao {
@Resource
private JdbcTemplate jdbcTemplate;
public List<User> getUserList(){
String sql = "select * from user";//SQL查询语句
return jdbcTemplate.query(sql, new RowMapper<User>() {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setName(rs.getString("username"));//从数据库中读取数据,放入User对象的属性中
user.setPassword(rs.getString("password"));
return user;
}
});
}
}
(4)创建Login类
package com.example.demo;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.UserDao;
import com.example.demo.User;
@RestController
public class Login {
@Resource
private UserDao userDao;
@PostMapping("/login")
public String controller01(@RequestParam("username") String username,
@RequestParam("password") String password)//获取参数{
List<User> list = userDao.getUserList();
//检索数据库中的用户名和密码是否匹配
for(User user:list) {
if(user.getName().equals(username) && user.getPassword().equals(password)) {
return "<script>alert(\"正确\")</script>";//如果存在匹配则alert正确
}
}
return "<script>alert(\"错误\")</script>";//否则alert错误
}
}
(5)运行Springboot项目,打开http://localhost:8080/login.html,用户名输入temp,密码输入123456,点击登录按钮。
弹出以下界面
如果任何一项错误则显示错误。
至此已完成简单读取数据并认证,初学难免有错,欢迎指正。
https://blog.csdn.net/qq_17639593/article/details/80559313
https://www.bilibili.com/video/BV19K4y1L7MT/
https://www.runoob.com/mysql/mysql-create-tables.html
https://www.runoob.com/mysql/mysql-insert-query.html