spring boot 2.0完美整合mybatis注解版 加上redis储存数据 配上freemarker模板 实现用户的登录注册

spring boot 2.0完美整合mybatis注解版 加上redis储存数据 配上freemarker模板 实现用户的登录注册

首先导入pom文件

<?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>com.lm.spring-boot</groupId>
	<artifactId>spring-boot</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>demo</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.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-data-redis</artifactId>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-pool2</artifactId>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</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-freemarker</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>





</project>

项目结构

在这里插入图片描述

1.controller类

package com.lm.controller;

import com.lm.model.User;
import com.lm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;


    @Autowired
    private RedisTemplate redisTemplate;






    @RequestMapping(value = "/index", method = RequestMethod.GET)
    public String index(Model model) {

        model.addAttribute("www","--------------欢迎登录注册-----------------");
        return "user/login";
    }




    @RequestMapping(value = "/reg", method = RequestMethod.GET)
    public String register() {
        return "/user/reg";
    }

    @RequestMapping(value = "/success", method = RequestMethod.GET)
    public String success(Model model) {

        //List<User> userList = userService.findAll();
        //model.addAttribute("userList", userList);

        Object user2=redisTemplate.opsForValue().get("user1");
        model.addAttribute("user2",user2);
        Object message = redisTemplate.opsForValue().get("message");
        model.addAttribute("message",message);
        return "/user/success";
    }

    @RequestMapping(value = "/fail", method = RequestMethod.GET)
    public String fail() {
        return "/user/fail";
    }
    @RequestMapping(value = "/registerFail", method = RequestMethod.GET)
    public String registerFail() {
        return "/user/registerFail";
    }

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public String list(ModelMap map) {
        List<User> userList = userService.findAll();
        map.addAttribute("userList", userList);
        return "/user/list";
    }

    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public String login(User user,Model model) {
        System.out.println("==================user.getUsername()========================"+user.getUsername());
        if (user.getUsername() != null & user.getPassword() != null) {


            System.out.println("==================user.getPassword()========================"+user.getPassword());

            User user1 = userService.doLogin(user.getUsername(),user.getPassword());


            System.out.println("=================user1=========================;"+user1);
           redisTemplate.opsForValue().set("user1",user1);




            if (user1 != null) {
                redisTemplate.opsForValue().set("message","登录成功");
                return "redirect:/user/success";
            }else {

                return "redirect:/user/fail";
            }

        }
        return  null;

    }
    @RequestMapping(value = "/register", method = RequestMethod.POST)
    public String doRegister(Model model,User user) {



        User user1 = userService.selectRegister(user.getUsername());
        if (user1 == null) {
            redisTemplate.opsForValue().set("message", "注册成功");
            int insert = userService.insert(user.getUsername(), user.getPassword(), user.getEmail());
            return "redirect:/user/success";

        } else {
            return "redirect:/user/registerFail";
        }




    }
}


mapper类

package com.lm.dao;

import com.lm.model.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;


@Mapper
public interface UserMapper {
	@Select("select id, username,password,email from t_user")

	List<User> findAll();

	@Select("select id,username,password ,email from t_user where username=#{username} and password = #{password}")
	User doLogin(@Param("username")String username ,@Param("password")String password);

	@Insert("insert into t_user (username,password ,email) values(#{username},#{password},#{email})")
	int doRegister( @Param("username")String username ,@Param("password")String password,@Param("email")String email);
	@Select("select id,username,password ,email from t_user where username=#{username} ")
	User selectRegister(@Param("username")String username );
}


UserServiceImpl类

package com.lm.service.impl;

import com.lm.dao.UserMapper;
import com.lm.model.User;
import com.lm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService{
	
	@Autowired
	private UserMapper userMapper;


	@Override
	public List<User> findAll() {
		return userMapper.findAll();
	}

	@Override
	public User doLogin(String username, String password) {
		return userMapper.doLogin(username,password);
	}

	@Override
	public int insert(String username, String password, String email) {
		return userMapper.doRegister(username,password,email);
	}

	@Override
	public User selectRegister(String username) {
		return userMapper.selectRegister(username);
	}


}


实体类

package com.lm.model;

import java.io.Serializable;

public class User implements Serializable{

	private static final long serialVersionUID = -1L;

	private Integer id;
	private String username;
	private String password;
	private String email;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	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{" +
				"id=" + id +
				", username='" + username + '\'' +
				", password='" + password + '\'' +
				", email='" + email + '\'' +
				'}';
	}
}

service类

package com.lm.service;

import com.lm.model.User;

import java.util.List;


public interface UserService {

	List<User> findAll();
	User doLogin(String username ,String password);
	int insert(String username ,String password,String email);
	User selectRegister(String username);
}

redis工具类

package com.lm.Utils;

import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.data.redis.serializer.StringRedisSerializer;
//
/**
 * Created by xjg on 2018/12/12.
 */
@SuppressWarnings("SpringJavaAutowiringInspection")
@Configuration
@EnableCaching
public class Redisconfig  {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        redisTemplate.setKeySerializer(new StringRedisSerializer());//设置key的序列化器
        redisTemplate.setValueSerializer(new RedisConverter());//设置值的序列化器
        return redisTemplate;
    }



}


package com.lm.Utils;

import org.springframework.core.convert.converter.Converter;
import org.springframework.core.serializer.support.DeserializingConverter;
import org.springframework.core.serializer.support.SerializingConverter;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;




public class RedisConverter implements RedisSerializer<Object> {
    private Converter<Object, byte[]> serializer = new SerializingConverter();//序列化器
    private Converter<byte[], Object> deserializer = new DeserializingConverter();//反序列化器

    @Override
    public byte[] serialize(Object o) throws SerializationException {//将对象序列化成字节数组
        if (o == null) return new byte[0];
        try {
            return serializer.convert(o);
        } catch (Exception e) {
            e.printStackTrace();
            return new byte[0];
        }
    }

    @Override
    public Object deserialize(byte[] bytes) throws SerializationException {//将字节数组反序列化成对象
        if (bytes == null || bytes.length == 0) return null;
        try {
            return deserializer.convert(bytes);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }

    }
}




Application类

package com.lm;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
@ComponentScan(basePackages="com.lm.*")
@EnableCaching
@MapperScan("com.lm.dao")
public class Application{
		
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
	

}


输入地址 http://localhost/user/index

在这里插入图片描述

数据库数据

在这里插入图片描述

输入用户名 6 和 密码6

在这里插入图片描述
显示登录的用户名

导入

csdn原文下载地址

[1]https://download.csdn.net/download/qq_43650896/10848286

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值