整个项目目录
- 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.xyz</groupId>
<artifactId>springboot-mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot-mybatis</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</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>1.3.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--导入druid-->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.8</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
创建项目是勾选了IDE会自动导入相应的依赖,你只需要导入druid连接池即
2. application.yml
spring:
datasource:
# 数据源基本配置
username: root
password: 123
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
type: com.alibaba.druid.pool.DruidDataSource
# 数据源其他配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
mybatis:
# 指定全局配置文件位置
config-location: classpath:mybatis/mybatis-config.xml
# 指定sql映射文件位置
mapperLocations: classpath:mybatis/mapper/*.xml
typeAliasesPackage: cn.xyz.entity
3. 实体类user
package cn.xyz.entity;
import java.io.Serializable;
public class User implements Serializable {
private String username;
private 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;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
4. dao层UserDao
package cn.xyz.dao;
import cn.xyz.entity.User;
import org.springframework.stereotype.Repository;
@Repository
public interface UserDao{
public void inserUser(String username,String password);
public User selectUser(String username,String password);
}
5. UserMapper.xml 注意文件路径与application.yml配置一致 # 指定sql映射文件位置
mapperLocations: classpath:mybatis/mapper/*.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="cn.xyz.dao.UserDao" >
<!-- 查询-->
<select id="selectUser" resultType="cn.xyz.entity.User">
select * from user where username = #{username} and password = #{password};
</select>
<!-- 新增-->
<insert id="inserUser">
insert user (username,password) values (#{username},#{password})
</insert>
</mapper>
6.mybatis的总配置文件mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
7. 服务层
接口
package cn.xyz.service;
import cn.xyz.entity.User;
public interface UserService {
public boolean inserUser(String username,String password);
public User selectUser(String username,String password);
}
实现类
package cn.xyz.service;
import cn.xyz.dao.UserDao;
import cn.xyz.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl{
@Autowired
private UserDao userDao;
public boolean inserUser(String username, String password) {
userDao.inserUser(username,password);
return true;
}
public User selectUser(String username,String password) {
System.out.println(username+" "+username);
return userDao.selectUser(username,password);
}
}
8. 控制层
package cn.xyz.controller;
import cn.xyz.entity.User;
import cn.xyz.service.UserServiceImpl;
import java.util.Map;
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;
@Controller
public class UserController {
@Autowired
private UserServiceImpl userServiceImp;
@RequestMapping("/login")
public String login(){
return "login";
}
@RequestMapping("/regist")
public String regist(){
return "regist";
}
@RequestMapping("/dologin")
@ResponseBody
public String doLogin(User user,Map<String,Object> map){
User user1 = userServiceImp.selectUser(user.getUsername(),user.getPassword());
System.out.print(user1);
if(user1==null){
map.put("msg", "密码或账号错误!");
return "fail";
}else {
map.put("msg", "登入成功");
return "success";
}
}
@RequestMapping("/doregist")
public String doRegist(User user,Map<String,Object> map) {
userServiceImp.inserUser(user.getUsername(), user.getPassword());
map.put("msg","注册成功");
return "success";
}
}
9.相应得到静态页面
登入界面
<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>
注册界面
<!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>
信息界面
<!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>