- 项目目录结构
- 添加好依赖
<!-- 添加 MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-- 添加 MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
- 在application.properties中配置数据库信息和mybatis信息
spring.datasource.url=jdbc:mysql://119.29.168.212:3306/wang?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=wang
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.type-type-aliases-package=com.example.demo.model
#mybatis.mapper-locations=classpath:mapper/UserMapper.xml
#配置静态资源访问路径
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/templates/
- 在UserDao.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.example.demo.dao.UserDao">
<resultMap type="com.example.demo.model.User" id="User">
<id column="id" property="id"/>
//字段名要和实体类中一致
<result column="username" property="username"/>
<result column="password" property="password"/>
</resultMap>
//id的值要和实现的方法一致
<select id="loginQuery" parameterType="com.example.demo.model.User" resultMap="User">
select username, password from user
where username = #{username} and password = #{password}
</select>
<insert id="insertQuery" parameterType="com.example.demo.model.User">
insert into user (username,password,id) values (#{username},#{password},#{id})
</insert>
</mapper>
- 在User.java中写实体类
package com.example.demo.model;
public class User {
public String id;
public String username;
public String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
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;
}
public User() {
super();
}
}
- UserController中实现登陆注册
package com.example.demo.controller;
import java.util.UUID;
import org.apache.commons.lang.StringUtils;
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.ResponseBody;
import com.example.demo.model.User;
import com.example.demo.service.UserService;
@Controller
@RequestMapping("/user")
public class Usercontroller {
@Autowired
UserService userService;
@RequestMapping("/login")
@ResponseBody
public Object login(User user){
// 判断是否为空
if(StringUtils.isNotBlank(user.getUsername()) && StringUtils.isNotBlank(user.getPassword())) {
// 不为空,到user中查找
User users = userService.loginQuery(user);
// 返回信息
if(users != null) {
System.out.println(users);
return users;
}else{
return "fail";
}
}else {
return "fail";
}
}
@RequestMapping("/regist")
@ResponseBody
public Object insertQuery(User user) {
if(StringUtils.isNotBlank(user.getUsername()) && StringUtils.isNotBlank(user.getPassword())) {
//随机生成32位码,用于逐主键,主键不为空
user.setId(UUID.randomUUID().toString().replace("-", ""));
int count = userService.insertQuery(user);
if(count == 1) {
return "success";
}else {
return "fail";
}
}else {
return "fail";
}
}
}
- UserDao.java 实现Dao层接口
注意要写@Mapper注解
package com.example.demo.dao;
import org.apache.ibatis.annotations.Mapper;
import com.example.demo.model.User;
@Mapper
public interface UserDao {
// 登陆后显示所有用户信息
public User loginQuery(User user);
// 插入一条用户信息,返回状态
public int insertQuery(User user);
}
- UserService接口和接口实现类UserServiceImpl
package com.example.demo.service;
import com.example.demo.model.User;
public interface UserService {
User loginQuery(User user);
int insertQuery(User user);
}
package com.example.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.dao.UserDao;
import com.example.demo.model.User;
@Service
public class USerServiceImpl implements UserService {
@Autowired
UserDao userDao;
//登录
@Override
public User loginQuery(User user) {
// 返回dao层的查询结果
return userDao.loginQuery(user);
}
// 注册
@Override
public int insertQuery(User user) {
return userDao.insertQuery(user);
}
}
- login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table align="center" >
<tr>
<td>用户名<input type="text" name="username" id="username"/></td>
</tr>
<tr>
<td>密   码<input type="password" name="password" id="password"/></td>
</tr>
<tr>
<td><button id="login-btn">登录</button></td>
</tr>
</table>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script>
$('#login-btn').click(function(){
var username = $('#username').val();
var password = $('#password').val();
$.ajax({
url:'user/login',
type:'post',
data:{
username: username,
password: password
},
success: function(data){
if(data != 'fail'){
/* 返回的是一个User对象,通过data.username获取值 */
alert("WelCome" + data.username);
}else{
alert("fail");
}
}
})
})
</script>
</body>
</html>
- regist.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table align="center" >
<tr>
<td>用户名<input type="text" name="username" id="username"/></td>
</tr>
<tr>
<td>密   码<input type="password" name="password" id="password"/></td>
</tr>
<tr>
<td><button id="login-btn">注册</button></td>
</tr>
</table>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script>
$('#login-btn').click(function(){
var username = $('#username').val();
var password = $('#password').val();
$.ajax({
url:'user/regist',
type:'post',
data:{
username: username,
password: password
},
success: function(data){
if(data != 'fail'){
/* 返回的是一个User对象,通过data.username获取值 */
alert("注册成功");
location.href = "login.html";
}else{
alert("fail");
}
}
})
})
</script>
</body>
</html>
静态资源,mybatis整合,springboot相关知识访问
https://blog.csdn.net/gsy_study/article/details/102840807.
注册:
登录: