SSM山东医院-1-登录(对象条件查询)-未加密版本


前言

山东医院笔记

1.实现登录

login.hml

1.由ajax发送请求的url和数据data给UserController

url:/login
data:{
	uLoginname:uLoginname,
	uPassword:uPassword
}

UserMapper.xml

需要查询到的是对象,所以SQL语句的书写形式不太正常,通过对象携带所有根据条件查询到的所有数据

  <!--添加的 要查询的是对象-->
  <select id="selectUser" parameterType="com.yhp.bean.User" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from user
    where
        u_loginName=#{uLoginname} and u_passWord=#{uPassword}
  </select>
<?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.yhp.dao.UserMapper">
  <resultMap id="BaseResultMap" type="com.yhp.bean.User">
    <id column="u_id" jdbcType="INTEGER" property="uId" />
    <result column="u_loginName" jdbcType="VARCHAR" property="uLoginname" />
    <result column="u_passWord" jdbcType="VARCHAR" property="uPassword" />
    <result column="u_trueName" jdbcType="VARCHAR" property="uTruename" />
    <result column="u_email" jdbcType="VARCHAR" property="uEmail" />
    <result column="u_state" jdbcType="INTEGER" property="uState" />
    <result column="r_id" jdbcType="INTEGER" property="rId" />
  </resultMap>

  <sql id="Base_Column_List">
    u_id, u_loginName, u_passWord, u_trueName, u_email, u_state, r_id
  </sql>

  <!--添加的 要查询的是对象-->
  <select id="selectUser" parameterType="com.yhp.bean.User" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from user
    where
        u_loginName=#{uLoginname} and u_passWord=#{uPassword}
  </select>


  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from user
    where u_id = #{uId,jdbcType=INTEGER}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
    delete from user
    where u_id = #{uId,jdbcType=INTEGER}
  </delete>
  <insert id="insert" parameterType="com.yhp.bean.User">
    insert into user (u_id, u_loginName, u_passWord, 
      u_trueName, u_email, u_state, 
      r_id)
    values (#{uId,jdbcType=INTEGER}, #{uLoginname,jdbcType=VARCHAR}, #{uPassword,jdbcType=VARCHAR}, 
      #{uTruename,jdbcType=VARCHAR}, #{uEmail,jdbcType=VARCHAR}, #{uState,jdbcType=INTEGER}, 
      #{rId,jdbcType=INTEGER})
  </insert>
  <insert id="insertSelective" parameterType="com.yhp.bean.User">
    insert into user
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="uId != null">
        u_id,
      </if>
      <if test="uLoginname != null">
        u_loginName,
      </if>
      <if test="uPassword != null">
        u_passWord,
      </if>
      <if test="uTruename != null">
        u_trueName,
      </if>
      <if test="uEmail != null">
        u_email,
      </if>
      <if test="uState != null">
        u_state,
      </if>
      <if test="rId != null">
        r_id,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="uId != null">
        #{uId,jdbcType=INTEGER},
      </if>
      <if test="uLoginname != null">
        #{uLoginname,jdbcType=VARCHAR},
      </if>
      <if test="uPassword != null">
        #{uPassword,jdbcType=VARCHAR},
      </if>
      <if test="uTruename != null">
        #{uTruename,jdbcType=VARCHAR},
      </if>
      <if test="uEmail != null">
        #{uEmail,jdbcType=VARCHAR},
      </if>
      <if test="uState != null">
        #{uState,jdbcType=INTEGER},
      </if>
      <if test="rId != null">
        #{rId,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.yhp.bean.User">
    update user
    <set>
      <if test="uLoginname != null">
        u_loginName = #{uLoginname,jdbcType=VARCHAR},
      </if>
      <if test="uPassword != null">
        u_passWord = #{uPassword,jdbcType=VARCHAR},
      </if>
      <if test="uTruename != null">
        u_trueName = #{uTruename,jdbcType=VARCHAR},
      </if>
      <if test="uEmail != null">
        u_email = #{uEmail,jdbcType=VARCHAR},
      </if>
      <if test="uState != null">
        u_state = #{uState,jdbcType=INTEGER},
      </if>
      <if test="rId != null">
        r_id = #{rId,jdbcType=INTEGER},
      </if>
    </set>
    where u_id = #{uId,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.yhp.bean.User">
    update user
    set u_loginName = #{uLoginname,jdbcType=VARCHAR},
      u_passWord = #{uPassword,jdbcType=VARCHAR},
      u_trueName = #{uTruename,jdbcType=VARCHAR},
      u_email = #{uEmail,jdbcType=VARCHAR},
      u_state = #{uState,jdbcType=INTEGER},
      r_id = #{rId,jdbcType=INTEGER}
    where u_id = #{uId,jdbcType=INTEGER}
  </update>
</mapper>

UserController

controller要去使用@Controller,

@RequestMapping,去拦截请求的url(/,/login)

通过对象传递数据,调用了userService的login方法,得到了查询到的对象的结果,根据结果,跳转相应的页面

package com.yhp.controller;

import com.yhp.bean.User;
import com.yhp.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

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

@Controller
public class UserController {
    @Autowired
    private UserService userService;

    //登录
    @RequestMapping({"/","/login"})
    public void login(User user,HttpServletResponse response,HttpSession session) throws Exception {
        response.setContentType("text/html;charset=utf-8");
        //1.将参数传递给login方法,接收UserMapper的login方法返回的boolean值
        boolean flag = userService.login(user);

        if (flag) {
            // 将查询到的user对象放入session中
            session.setAttribute("user",user);
            // 由于视图解析器已经配置, 这里只需要添加html文件名字, 不需要带后缀
            response.getWriter().write("<script>location.href='/html/index.html';</script>");
        } else {
            response.getWriter().write("<script>alert('账号或密码错误!');location.href='/html/login.html';</script>");
        }
    }
}

UserService:接口

package com.yhp.service;

import com.yhp.bean.User;

public interface UserService {

    boolean login(User user);
}

UserServiceImpl:实现

从mapper层拿到后,进行校验,看是否查到了,如果查到了那么就返回true,如果没有查询到返回的是false

package com.yhp.service.impl;

import com.yhp.bean.User;
import com.yhp.dao.UserMapper;
import com.yhp.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {

    // 自动注入
    @Autowired
    private UserMapper userMapper;

    @Override
    public boolean login(User user) {
        //查询user表中是哦福有用户输入的账号和密码
        if (userMapper.selectUser(user) != null){
            return true;
        }else {
            return false;
        }
    }
}

UserMapper

public interface UserMapper {
    //添加的
        /**
     * 登录方法
     * 查询数据库的用户名和密码 返回值为一个对象,如果对象不存在则返回空
     * 此处可能会引发空指针异常,可以直接抛出
     * @param user
     * @return
     */
    //@Select("select * from user where uLoginname=#{uLoginname} and uPassword=#{uPassword}")
    User selectUser(User user);
}    

总结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低调的小哥哥

你的关注就是我为你服务的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值