springboot整合mybatis寫一個登入註冊介面
阿新 • • 發佈:2018-11-13
整個專案目錄
- 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>