奥凯航空项目(一登录账号后台代码)

  1. 请求服务说明:
  1. 表单提交位置:logic/baseInfo/sysUser/login
  2. 业务逻辑处理要求:
  1. 根据用户名密码判断该用户是否为合法用户;
  2. 登陆合法则跳转至/index页面;

2.uid 用户名,pwd 密码 error 错误 msg 需要跳转的结果页面

3.

  1. Java部分:
  1. controller(SysUsercontroller.java)

 

  1. entity(Sysuser.java)

 

  1. service(SysUserService.java)

 

  1. mapper(interface,SysuserMapper.java)

 

  1. mapper(xml,SysuserMapper.xml)

 

2.

实体类——>数据库访问层——>业务层——>控制层

首先,写Sysuser中的实体类,在com.iss.okair.db.entity中的Sysuser,并写好get,set函数(Alt+shift+s+r

然后再创建com.iss.okair.db.mapper.SysuserMapper

 

public interface SysuserMapper {

        List<Sysuser> loginCheck(Sysuser loginUser);}

 

在SysuserMapper.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.iss.okair.db.mapper.SysuserMapper">

mybatis中,映射文件中的namespace是用于绑定Dao接口的,即面向接口编程。

当你的namespace绑定接口后,你可以不用写接口实现类,mybatis会通过该绑定自动帮你找到对应要执行的SQL语句,如下:

 

  <resultMap id="BaseResultMap" type="com.iss.okair.db.entity.Sysuser">

    <id column="id" jdbcType="INTEGER" property="id" />

    <result column="uid" jdbcType="VARCHAR" property="uid" />

    <result column="pwd" jdbcType="VARCHAR" property="pwd" />

    <result column="nickName" jdbcType="VARCHAR" property="nickname" />

    <result column="role" jdbcType="VARCHAR" property="role" />

    <result column="createTime" jdbcType="TIMESTAMP" property="createtime" />

  </resultMap>

  <sql id="Base_Column_List">

    id, uid, pwd, nickName, role, createTime

  </sql>

  //jdbcTypejavaType的区别:

JdbcType是在数据库中,javaType是java环境下

Resultmap与resulttype的区别:resulttype是映射的是类型,应为在bean里面的类型,map是字段

parameterType:输入的类型。

  <select id="selectByExample" parameterType="com.iss.okair.db.entity.Sysuser" resultMap="BaseResultMap">

//parameterType是输入,resultMap是输出

    select

    <include refid="Base_Column_List" />

    from sysuser

    <where>

    <if test="role!=null and role != '-1'">

        and role = #{role, jdbcType=VARCHAR}

    </if>

    <if test="uid !=null and uid != ''">

        <bind name="uid" value="'%' + uid + '%'" />

        and uid like '${uid}'

    </if>

    </where>

  </select>

  <select id="loginCheck" parameterType="com.iss.okair.db.entity.Sysuser" resultMap="BaseResultMap">

    select

    <include refid="Base_Column_List" />

    from sysuser

    where uid = #{uid, jdbcType=VARCHAR} and pwd = #{pwd, jdbcType=VARCHAR}

  </select>

 

 $#的区别:$OGML表达式,传值。#赋值。

</mapper>

 

 

业务层:

@Service用于标注业务层组件

@Autowired//引入,变成bean类型

    private SysuserMapper mapper;

 

    public Sysuser login(Sysuser loginUser) {

       

      loginUser.setPwd(MD5Tools.buildMD5String(loginUser.getPwd()));

       

        List<Sysuser> result = mapper.loginCheck(loginUser);

       

        return result.size()==1?result.get(0):null;

    }

 

控制层:

@RestController

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

@RequestMapping

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

当我们需要把某个值从一个请求redirect到另一个请求,那可能就取不到值,这个时候就可以用@SesstionAttributes这个注解了

@SesstionAttributes是作用在类上的

 

@RequestMapping("/logic/baseInfo/sysUser")

@SessionAttributes("currentUser")

public class SysUserController {

   

    @Autowired

    private SysUserService service;

   

    @RequestMapping("/login")

    @ResponseStatus(code=HttpStatus.OK)

    public Message login(Sysuser user, ModelMap model) {

ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数: 

addAttribute(String key,Object value);

 

 

        Message message = new Message();

        user = service.login(user);

       

        if(user!=null) {

           message.setError(false);

           message.setMsg("/index");

           model.addAttribute("currentUser", user);

        } else {

           message.setError(true);

           message.setMsg("/login");

        }

        return message;

    }

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值