pom.xml配置
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ny</groupId>
<artifactId>IOThub</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>IOThub Maven Webapp</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</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-aop</artifactId>
</dependency>
<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.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- JSON 包-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
</dependencies>
<build>
<finalName>IOThub</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- fork : 如果没有该项配置,肯定devtools不会起作用,即应用不会restart -->
<fork>true</fork>
</configuration>
</plugin>
</plugins>
<resources>
<!--打包的时候把xml文件打包入jar包-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
启动application.java
package com;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.ny.dao")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
controller
package com.ny.controller;
import java.net.URI;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.websocket.ContainerProvider;
import javax.websocket.WebSocketContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.ny.entity.UserInfoEntity;
import com.ny.service.UserInfoService;
import com.ny.until.ChatMessageHandler;
import com.ny.until.SocketClient;
@Controller
public class LoginController {
private final Logger LOG = LoggerFactory.getLogger(this.getClass());
@Resource
private UserInfoService userInfoService;
@RequestMapping("/")
// 用main登录,跳转登录页面
public String main() {
LOG.info("进入登录界面");
return "login";
}
@RequestMapping("login")
// 验证登录信息,成功跳转主页面,或者退回登录页面
public ModelAndView login(UserInfoEntity user, HttpServletRequest request) {
LOG.info(">>>用户" + user.getuName() + "登陆");
ModelAndView mav = null;
// 判定登录用户是否正确
if (userInfoService.checkTheUser(user)) {
// 把用户信息存储到session中方便后面取用
request.getSession().setAttribute("user", user);
// 更新用户最后一次登录的信息
userInfoService.updateLastLogin(user.getuName());
LOG.info(">>>用户" + user.getuName() + "登陆成功");
mav.addObject("user", user);
} else {
// 登录失败跳转至登录页面
mav = new ModelAndView("login");
LOG.info(">>>用户" + user.getuName() + "登陆失败");
mav.addObject("error", "error");
}
return mav;
}
@RequestMapping("logout")
public String logout(HttpServletRequest request) {
LOG.info("注销");
request.getSession().removeAttribute("user");
return "login";
}
}
service层
package com.ny.service;
import com.ny.entity.UserInfoEntity;
public interface UserInfoService {
public UserInfoEntity getUserInfo(String uName);
public boolean checkTheUser(UserInfoEntity user);
}
package com.ny.service.serviceImpl;
import java.security.NoSuchAlgorithmException;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ny.dao.UserInfoDao;
import com.ny.entity.UserInfoEntity;
import com.ny.service.UserInfoService;
import com.ny.until.Md5;
@Service("userInfoService")
public class UserInfoServiceImpl implements UserInfoService {
private final Logger LOG = LoggerFactory.getLogger(UserInfoServiceImpl.class);
@Resource
private UserInfoDao userInfoDao;
@Override
public UserInfoEntity getUserInfo(String uName) {
return userInfoDao.getUserInfo(uName);
}
@Override
// 判定登录用户姓名和密码是否正确
public boolean checkTheUser(UserInfoEntity user) {
try {
user.setuPassword(Md5.Encoder(user.getuPassword()));
} catch (NoSuchAlgorithmException e) {
LOG.warn("登录出错");;
}
UserInfoEntity that = getUserInfo(user.getuName());
if (that == null) {
return false;
}
return user.getuPassword().equals(that.getuPassword());
}
}
dao层
package com.ny.dao;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import com.ny.entity.UserInfoEntity;
@Mapper
@Repository("userInfoDao")
public interface UserInfoDao {
public UserInfoEntity getUserInfo(String uName);
}
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="com.ny.dao.UserInfoDao">
<resultMap id="userMap" type="com.ny.entity.UserInfoEntity">
<result property="uId" column="u_id"/>
<result property="uName" column="u_name"/>
<result property="uPassword" column="u_password"/>
</resultMap>
<sql id="Base_Column_List" >
u_id, u_name, u_password
</sql>
<select id="getCountForName" resultType="java.lang.Integer" parameterType="java.lang.String">
SELECT
COUNT(*)
FROM
IOT_NY.USER_INFO
WHERE
u_name = #{uName}
</select>
<select id="getUserInfo" resultMap="userMap" parameterType="java.lang.String">
SELECT
u_id, u_name, u_password
FROM
IOT_NY.USER_INFO
WHERE
u_name = #{uName}
</select>
</mapper>
上面只是做个简单的demo思路到了,但是估计yu运行不通,相信给大家一个启发
注:
dao和mapper,名字一样,放在一个包里面