springboot+mybatis信息查询系统:登录验证,条件查询

 项目效果图

 

 

StudentController.java 

package cn.wmyskxz.controller;

import cn.wmyskxz.entity.Student;
import cn.wmyskxz.service.StudentService;
import cn.wmyskxz.util.Page;

import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Student 控制器
 *
 * @author:z84108918
 */
@Controller
public class StudentController {

    @Autowired
    private StudentService studentService;
    
	@RequestMapping(value = "/queryByCon", method = RequestMethod.POST)
	@ResponseBody
    public  List<Student> queryByCon(@RequestBody Student student) 
	 {
		
		 List<Student> stu = new ArrayList<Student>();
    	 stu = studentService.findOrdersByCon(student.getName(), student.getSex(), student.getGrade(), student.getClass_name());
		 return stu;
	 }
    
}

 UserController.java

package cn.wmyskxz.controller;


import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import cn.wmyskxz.entity.User;
import cn.wmyskxz.service.StudentService;
import cn.wmyskxz.service.UserService;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;



@RestController

public class UserController {
	
	@Autowired
    private UserService userService;

	 @RequestMapping(value = "/login", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	 @ResponseBody
	 public  boolean login(@RequestBody User user) 
	 {
		

		 return userService.checkLogin(user.getUserName(), user.getPassword());
		
	 }
}
   

 StudentDao.java

package cn.wmyskxz.dao;

import cn.wmyskxz.entity.Student;

import java.util.List;

import org.apache.ibatis.annotations.Param;

public interface StudentDao
{
    int getTotal();
    
    void addStudent(Student student);
    
    void deleteStudent(int id);
    
    void updateStudent(Student student);
    
    Student getStudent(int id);
    
    void getStudentByFuzzyQuery(Student student);
    
    List<Student> list(@Param("start") int start, @Param("count") int count);
    
    List<Student> findOrdersByCon(@Param("name") String name, @Param("sex") String sex, @Param("grade") int grade,
            @Param("class_name") int class_name);
    // List<Student> findOrdersByCon(Student student);
}

UserDao.java

package cn.wmyskxz.dao;

import java.sql.SQLException;

import org.apache.ibatis.annotations.Param;

import cn.wmyskxz.entity.User;

public interface UserDao {
	
    int insert(User user) throws SQLException;
    
    User selectByName(@Param("userName") String userName) throws SQLException;
		
}

Student.java 

package cn.wmyskxz.entity;


/**
 * Student 实体类
 *
 * @author: 
 */
public class Student {

    private int id;
    private int student_id;
    private String name;
    private String sex;
    private int grade;
    private int class_name;
    private int chinese_score;
    private int math_score;
    private int english_score;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getStudent_id() {
		return student_id;
	}
	public void setStudent_id(int student_id) {
		this.student_id = student_id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getGrade() {
		return grade;
	}
	public void setGrade(int grade) {
		this.grade = grade;
	}
	public int getClass_name() {
		return class_name;
	}
	public void setClass_name(int class_name) {
		this.class_name = class_name;
	}
	public int getChinese_score() {
		return chinese_score;
	}
	public void setChinese_score(int chinese_score) {
		this.chinese_score = chinese_score;
	}
	public int getMath_score() {
		return math_score;
	}
	public void setMath_score(int math_score) {
		this.math_score = math_score;
	}
	public int getEnglish_score() {
		return english_score;
	}
	public void setEnglish_score(int english_score) {
		this.english_score = english_score;
	}
 
}

User.java

package cn.wmyskxz.entity;
 
public class User {
	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;
	}

}

 StudentServiceImpl.java

package cn.wmyskxz.service.serviceImpl;

import cn.wmyskxz.dao.StudentDao;
import cn.wmyskxz.entity.Student;
import cn.wmyskxz.service.StudentService;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.sql.SQLException;

/**
 * StudentService 的实现类
 *
 * @author: 
 */
@Service
public  class StudentServiceImpl implements StudentService {

    
	private static Logger logger = LoggerFactory.getLogger(StudentServiceImpl.class);
	
	@Autowired
    StudentDao studentDao;

    public int getTotal() {
        return studentDao.getTotal();
    }

    public void addStudent(Student student) {
        studentDao.addStudent(student);
    }

    public void deleteStudent(int id) {
        studentDao.deleteStudent(id);
    }

    public void updateStudent(Student student) {
        studentDao.updateStudent(student);
    }

    public Student getStudent(int id) {
        return studentDao.getStudent(id);
    }
    
    public void getStudentByFuzzyQuery(Student student){
    	
    	studentDao.getStudentByFuzzyQuery(student);
    }
    
    public List<Student> findOrdersByCon(String name, String sex, int grade, int class_name){
    	
    	 List<Student> list = new ArrayList<Student>();
         list = studentDao.findOrdersByCon(name, sex, grade, class_name);
    	 return list;
    }

  public List<Student> list(int start, int count) {
        return studentDao.list(start, count);
    }

}

UserServiceImpl.java

package cn.wmyskxz.service.serviceImpl;

import java.sql.SQLException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.wmyskxz.dao.UserDao;
import cn.wmyskxz.entity.User;
import cn.wmyskxz.service.UserService;

@Service
public class UserServiceImpl implements UserService{
	
	private static Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);
	
   @Autowired
   private UserDao userDao;

   public  boolean checkLogin(String userName, String password)
	{
	   
	
		//根据登陆的用户名和密码进行验证
		//1.查询后台数据 返回类型为User
	     
	   User user = null;
	   try {
		   user = userDao.selectByName(userName);
	   } catch (SQLException e) {
		// TODO Auto-generated catch block
		   logger.error("selectByName sql error!!");
	   }
	    
	  
		
		//2、判断用户状态
        
		if (userName==null) 
		{
			System.out.println("用户不存在:\n");
			//throw new Exception("该用户不存在!");
			return false;
		 }
		else
		{
				//3.判断密码
				if (password==null) 
				{
				//throw new Exception("密码为空!");
					System.out.println("密码为空!\n");
					return false;
				}
		         else
		        {
		    	   //4、验证密码是否正确
		    	   if (!(user.getPassword()).equals(password))
		    	   {
		    		   // throw new Exception("密码错误!");
		    		   System.out.println("密码错误!");
		    		   return false;
		    	   }
		    	   else
		    	   {
		    		   System.out.println("密码匹配成功!\n");
		    		   return true;
		    	   }
	           }
        }
		 
		
	}
 
}

 StudentService.java

package cn.wmyskxz.service;

import cn.wmyskxz.entity.Student;

import java.util.List;

public interface StudentService {

    /**
     * 获取到 Student 的总数
     * @return
     */
    int getTotal();

    /**
     * 增加一条数据
     * @param student
     */
    void addStudent(Student student);

    /**
     * 删除一条数据
     * @param id
     */
    void deleteStudent(int id);

    /**
     * 更新一条数据
     * @param student
     */
    void updateStudent(Student student);

    /**
     * 找到一条数据
     * @param id
     * @return
     */
    Student getStudent(int id);
    
    /**
     * 根据名字找到一条数据
     * @param name
     * @return
     */
    void getStudentByFuzzyQuery(Student student);
    
    /**
     * 根据选择条件找到数据
     * @param string2 
     * @param string 
     * @param i 
     * @param student
     * @return
     */
    
    List<Student> findOrdersByCon( String name, String sex, int grade, int class_name);

    /**
     * 列举出从 start 位置开始的 count 条数据
     * @param start
     * @param count
     * @return
     */
    List<Student> list(int start, int count);

}

 UserService.java

package cn.wmyskxz.service;


public interface UserService {
	

	public  boolean checkLogin(String userName, String password);
	
}

 Application.java

package cn.wmyskxz;


import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.context.annotation.ComponentScan;






@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("cn.wmyskxz")
@MapperScan("cn.wmyskxz.dao")
public class Application {
	
	
    
	public static void main(String[] args)
	{
		SpringApplication.run(Application.class,args);
		
	}

}

 StudentDao.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">

<!-- 将namespace的值设置为DAO类对应的路径 -->
<mapper namespace="cn.wmyskxz.dao.StudentDao">
		
	<resultMap id="student" type="cn.wmyskxz.entity.Student">
        <result column="id" property="id"/>
        <result column="student_id" property="student_id"/>
        <result column="name" property="name"/>
        <result column="sex" property="sex"/>
        <result column="grade" property="grade"/>
        <result column="class_name" property="class_name"/>
        <result column="chinese_score" property="chinese_score"/>
        <result column="math_score"  property="math_score"/>
        <result column="english_score" property="english_score"/>
    </resultMap>
    	
    <!-- 查询数据条目 -->
    <select id="getTotal" resultType="java.lang.Integer">
        SELECT COUNT(*) FROM student
    </select>

    <!-- 增加一条数据 -->
    <insert id="addStudent">
        INSERT INTO student VALUES(NULL, #{student_id}, #{name}, #{sex}, #{grade}, #{class_name},#{chinese_score},#{math_score},#{english_score})
    </insert>

    <!-- 删除一条数据 -->
    <delete id="deleteStudent" parameterType="java.lang.Integer">
        DELETE FROM student WHERE id = #{id}
    </delete>

    <!-- 更新一条数据 -->
    <update id="updateStudent" >
        UPDATE student SET student_id = #{student_id}, name = #{name},
        sex = #{sex}, grade = #{grade}, class_name = #{class_name}, 
        chinese_score = #{chinese_score}, math_score = #{math_score}, 
        english_score = #{english_score}  WHERE id = #{id}
    </update>

    <!-- 查询一条数据 -->
    <select id="getStudent" resultMap="student">
        SELECT * FROM student WHERE id = #{id}
    </select>
    
    
    <!-- 根据名字模糊查询 -->
    <select id="getStudentByFuzzyQuery"  resultMap="student">
     	select * from student
     	where name like concat("%",#{name},"%")
    </select>

   <!--  条件查询  -->
    <select id = "findOrdersByCon" resultMap="student">
		SELECT * FROM `student` where 1=1
		<if test="!grade.equals('')">  
        	and grade = #{grade}  
        </if> 
        <if test="!class_name.equals('')">  
        and class_name = #{class_name} 
        </if>
        <if test="!name.equals('')">  
        and name = #{name} 
        </if>
        <if test="!sex.equals('')">  
        and sex = #{sex} 
        </if>
	</select> 

    <!-- 查询从start位置开始的count条数据-->
    <select id="list" resultMap="student">
        SELECT * FROM student ORDER BY student_id desc limit #{param1}, #{param2}
    </select>
</mapper>

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="cn.wmyskxz.dao.UserDao" >
 
    <resultMap id="BaseResultMap" type="cn.wmyskxz.entity.User" >
        <result column="userName" property="userName"/>
        <result column="password" property="password"/>
    </resultMap>
 
    <insert id="insert" >
        insert into user (userName, password)
        values (#{userName}, #{password})
    </insert>
 	
 	
 	<select id="selectByName"  resultMap="BaseResultMap"  >
    select * from user where userName=#{userName} 
    </select>
</mapper>

application.properties 

server.port=9003
#DB Configuration:
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/mybatis_db
spring.datasource.username = root
spring.datasource.password = root

# --- {Logging}
logging.level.com.neusoft.newsroom=DEBUG
logging.level.org.springframework.security=DEBUG
logging.level.org.hibernate=ERROR
logging.level.com.mypackage.domain.persistence=DEBUG




mybatis.mapper-locations=classpath:/wmyskxz/dao/*.xml
mybatis.type-aliases-package=cn.wmyskxz.entity
mybatis.config-location=classpath:/mybatis.cfg.xml


# \
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

mybatis.cfg.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="cacheEnabled" value="true" />
		<setting name="lazyLoadingEnabled" value="true" />
		<setting name="multipleResultSetsEnabled" value="true" />
		<setting name="useColumnLabel" value="true" />
		<setting name="useGeneratedKeys" value="false" />
		<setting name="defaultExecutorType" value="SIMPLE" />
	</settings>

</configuration>

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>cn.wmyskxz</groupId>
	<artifactId>StudentManagerSSM</artifactId>
	<packaging>jar</packaging>
	<version>0.0.1-SNAPSHOT</version>
	
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.6.RELEASE</version>
	</parent>
	
	<name>StudentManagerSSM</name>
	<url>http://maven.apache.org</url>
	
	<properties>
		<java.version>1.8</java.version>
		<!--添加如下两行代码指定Thymeleaf标签的版本-->
        <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
        <thymeleaf-layout-dialect.version>2.0.5</thymeleaf-layout-dialect.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		
		<dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.9.0</version>
        </dependency>
        
        <dependency>
	    <groupId>com.auth0</groupId>
	    <artifactId>java-jwt</artifactId>
	    <version>3.1.0</version>
		</dependency>
        
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		
		<dependency>
	    <groupId>net.sourceforge.nekohtml</groupId>
	    <artifactId>nekohtml</artifactId>
	    <version>1.9.22</version>
		</dependency>
        
        <dependency>
		<groupId>com.github.pagehelper</groupId>
		<artifactId>pagehelper</artifactId>
		<version>4.1.6</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
		</dependency>
		
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.1.1</version>
		</dependency>

		<!-- jstl标签 -->
		<dependency>
		
		<groupId>javax.servlet</groupId>
		
		<artifactId>jstl</artifactId>
		
		<version>1.2</version>
		
		</dependency>
		
		
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<version>1.5.4.RELEASE</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-archetype-plugin</artifactId>
				<version>3.0.0</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>

				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>3.0.2</version>
				<configuration>
					<addDefaultExcludes>false</addDefaultExcludes>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
                <version>2.7</version>
				<configuration>
					<formats>
						<format>html</format>
						<format>xml</format>
					</formats>
				</configuration>
				<executions>
					<execution>
						<id>cobertura-report</id>
						<goals>
							<goal>cobertura</goal>
						</goals>
						<phase>test</phase>
					</execution>
				</executions>
			</plugin>

		</plugins>
		<finalName>StudentManagerSSM</finalName>
	</build>
</project>

猜你喜欢

转载自blog.csdn.net/qq_37139060/article/details/81513366