ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

川职院-JAVA第二阶段实训

2022-06-07 14:34:32  阅读:173  来源: 互联网

标签:result czdsj 职院 base 实训 import JAVA com user


目录

1.数据不统一

导致问题:
1.前端接收数据时不知道数据存储的格式
2.不知道业务是否成功
返回的json数据中要有一个数据表达后端操作是否成功

1.1 封装一个返回的结果集实体

package com.czdsj.core.dto;

import lombok.Data;

/**
 * 后端返回前端json数据实体
 * 2022/6/7
 */
@Data
public class MyResult {

    private String code = "100";//业务状态码:100=》业务操作成功  500=》业务操作失败(系统异常)

    private String msg = "操作成功!";//业务返回的数据表述信息  “操作成功!” “登录成功!”

    private Object data;//业务返回的数据

}

之后所有controller类中返回json数据的方法返回值类型必须填写为封装的结果集类型

/**
     * 查询学生的所有数据-返回json
     * @return
     */
    @RequestMapping(value = "/getStudentList",method = RequestMethod.GET)
    @ResponseBody
    public MyResult getStudentListData(){

        log.info("查询学生的所有数据");

        MyResult result = new MyResult();

        //控制器层调用-业务接口
        List<StudentDo> studentList = null;
        try {
            studentList = baseService.getStudentList();
        } catch (Exception e) {
            e.printStackTrace();//知道错误的原因和代码的位置
            result.setCode("500");//告诉前端后端系统异常了
            result.setMsg("学生信息查询异常!请联系管理员处理~");
        }

        result.setData(studentList);//将查询出来的数据放到data属性中

        return result;

    }

2.用户登录案例

2.1 前端部分

登录界面jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>

<html>
<head>
    <meta charset="UTF-8" />
    <title>登录页面</title>
    <!-- 引入 JQuery  -->
    <script type="text/javascript" src="${pageContext.request.contextPath}/static/js/jquery-3.6.0.min.js"></script>
    <!-- 引入自定义的js文件 -->
    <script type="text/javascript" src="${pageContext.request.contextPath}/static/base/js/index.js"></script>
</head>
<body>
   <!-- 登录表单 -->
   <form>
       <label>用户名</label>
       <input type="text" name="userName" id="userName" placeholder="请输入用户名.."/><br/>
       <label>密码</label>
       <input type="password" name="pwd" id="pwd" placeholder="请输入密码.."/><br/>
       <!-- 提交按钮-关闭默认表单提交功能 -->
       <button type="button" onclick="doLogin()">登录</button>
   </form>

</body>
</html>

登录相关ajax代码(js文件)

/**
 * 点击登录提交表单进行登录操作
 */
function doLogin(){

    var loginData={
        userName:$("#userName").val(),
        pwd:$("#pwd").val()
    };

    console.dir(loginData);

    $.ajax({
        url:"/ssm/base/doLogin",
        type:"POST",
        data:JSON.stringify(loginData),
        dataType:"JSON",
        contentType:"application/json;charset=UTF-8",
        success:function(data){
            if(data.code=="100"){
                alert(data.msg);
                //页面跳转
            }else{
                alert(data.msg);
            }
        },
        error:function(XMLHttpRequest, textStatus, errorThrown){
            console.dir("请求失败!");
        }
    });

}

2.2 后端部分

控制器层(处理登录请求和结果响应)

package com.czdsj.base.controller;

import com.czdsj.base.mybatis.domain.StudentDo;
import com.czdsj.base.mybatis.domain.UserDo;
import com.czdsj.base.service.BaseService;
import com.czdsj.core.dto.MyResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * 学生基础信息采集模块-控制器层
 * 2022/6/1
 */
@Controller
@RequestMapping("/base")
@Slf4j //日志注解 自动生成一个log对象
public class BaseController {

    /**
     * 自动注入接口实现层, name是实现层类型首字母小写即可
     */
    @Resource(name = "baseServiceImpl")
    private BaseService baseService;  

/**
     * 登录操作
     * @param user
     * @return
     */
    @RequestMapping(value = "/doLogin",method = RequestMethod.POST)
    @ResponseBody
    public MyResult doLogin(@RequestBody UserDo user){

        log.info("基础模块 -- 登录操作");

        MyResult result = new MyResult();

        if(!("".equals(user.getUserName())||user.getUserName()==null&&"".equals(user.getPwd())||user.getPwd()==null)){

            int i = baseService.doLogin(user);
            if(i>0){
                result.setMsg("登录成功!");
            }else{
                result.setCode("500");
                result.setMsg("登录失败!用户名或密码错误!");
            }

        }else{
            result.setMsg("用户名和密码不能为空!");
            result.setCode("500");
            return result;
        }

        return result;

    }

}

业务接口层

package com.czdsj.base.service;

import com.czdsj.base.mybatis.domain.StudentDo;
import com.czdsj.base.mybatis.domain.UserDo;

import java.util.List;

/**
 * 学生基础信息采集-业务接口层
 * 2022/6/1
 */
public interface BaseService {
     /**
     * 用户登录
     * @param user
     * @return
     */
    int doLogin(UserDo user);

}

业务接口实现层

package com.czdsj.base.service.impl;

import com.czdsj.base.mybatis.dao.BaseMapper;
import com.czdsj.base.mybatis.domain.StudentDo;
import com.czdsj.base.mybatis.domain.UserDo;
import com.czdsj.base.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;

/**
 * 学生基础信息采集-业务实现层
 * 2022/6/1
 */
@Service
public class BaseServiceImpl implements BaseService {

    /**
     * 通过容器自动注入mybatis接口的实现
     */
    @Autowired
    private BaseMapper baseMapper;
        /**
     * 用户登录
     * @param user
     * @return
     */
    @Override
    public int doLogin(UserDo user) {

        int i = baseMapper.doLogin(user);

        return i;
    }
}

Mybatis接口-mapper接口

package com.czdsj.base.mybatis.dao;

import com.czdsj.base.mybatis.domain.StudentDo;
import com.czdsj.base.mybatis.domain.UserDo;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * Mybatis接口层
 * 2022/6/1
 */
@Mapper
public interface BaseMapper {
    int doLogin(UserDo user);

}

MybatisSQL映射文件-mapperXML

<?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.czdsj.base.mybatis.dao.BaseMapper">
    
<select id="doLogin" resultType="java.lang.Integer" parameterType="com.czdsj.base.mybatis.domain.UserDo">
        select count(*) from t_user
        where userName= #{userName}
          and pwd=#{pwd}
    </select>


</mapper>

标签:result,czdsj,职院,base,实训,import,JAVA,com,user
来源: https://www.cnblogs.com/DQGonoes/p/16351665.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有