发表于: 2018-01-02 22:06:07

1 459


今天完成的事情:

对职业那张表格进行了制作.

因为我使用的是多表查询,对应2个单独的对象.

mapper这块儿的话和单标查询有一定的区别.

<?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.dao.JobsDao">
<resultMap id="jobs" type="com.bean.Jobs">
   <!--配置映射订单信息-->
   <id column="id" property="id"/>
   <result column="create_at" property="createAt"/>
   <result column="update_at" property="updateAt"/>
   <result column="low_salary" property="lowSalary"/>
   <result column="medium_salary" property="mediumSalary"/>
   <result column="high_salary" property="highSalary"/>
   <result column="intros_id" property="introsId"/>
   <result column="jobname" property="jobname"/>
   <result column="online" property="online"/>
   <result column="head" property="head"/>
   <result column="intro"  property="intro"/>
   <result column="hint" property="hint"/>
   <!--配置映射的关联的职业介绍信息-->
   <!--association(联合,关联)用于映射关联查询单个对象的信息
   property:要将关联查询的用户信息映射到jobs的哪个属性
   javatype:该属性的类型
   -->
   <association  property="jobsIntros" javaType="com.bean.JobsIntros">
       <id column="id" property="id"/>
       <result column="create_at" property="createAt"/>
       <result column="update_at" property="updateAt"/>
       <result column="intros" property="intros"/>
   </association>
</resultMap>

   <select id="selectJobs" resultMap="jobs">
       SELECT jobs.*,jobs_intros.intros FROM jobs,jobs_intros WHERE
jobs.intros_id = jobs_intros.id
</select>
</mapper>

使用了

   <association  property="jobsIntros" javaType="com.bean.JobsIntros">

这个标签用以表示这个属性对应了第二张表的哪些字段.

dao

package com.dao;

import com.bean.Jobs;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
* @author Arike
* Create_at 2018/1/2 14:19
*/
public interface JobsDao {

List<Jobs> selectJobs();
}

service层这里就不贴了,因为没有添加逻辑的东西.

查询使用的是简单的内连接查询.

controller

@RequestMapping("/joblist")
public String job(ModelMap model){
List<Jobs> list = jobsServiceImpl.selectJobs();
   System.out.println(list);
   model.addAttribute("joblist",list);
   return "joblist";
}

对应的jsp页面文件:

<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
 Created by IntelliJ IDEA.
 User: yyj
 Date: 2017/12/27
 Time: 20:01
 To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no">
   <script src="${pageContext.request.contextPath}/t8/js/jquery-3.2.1.min.js"></script>
   <link href="${pageContext.request.contextPath}/t8/css/bootstrap.min.css" rel="stylesheet">
   <script src="${pageContext.request.contextPath}/t8/js/bootstrap.min.js"></script>
   <link rel="stylesheet" href="${pageContext.request.contextPath}/t8/css/jnshu.css">
   <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/t8/css/cooperation.css">
   <link rel="stylesheet" href="${pageContext.request.contextPath}/t8/css/joblist.css">
   <title>职位列表</title>
</head>
<body>
<header>
<tiles:insertAttribute name="head"/>
</header>

<!-- 链式导航 -->
<div class="container link-line">
   <div class="row">
       <ol class="breadcrumb">
           <li><a href="${pageContext.request.contextPath}/jnshu">首页</a></li>
           <li class="active">职业</li>
       </ol>
   </div>
</div>
<!-- 职业方向 -->
<div class="container career-path">
   <div class="row">
       <ul>
           <li class="career-choise"><a>方向:</a></li>
           <li><a href="">全部</a></li>
           <li><a href="">前端开发</a></li>
           <li><a href="">后端开发</a></li>
           <li><a href="">移动开发</a></li>
           <li><a href="">整站开发</a></li>
           <li><a href="">运营维护</a></li>
       </ul>
   </div>
</div>
<c:forEach items="${joblist}" var="l">
<!-- 前端开发方向 -->
<div class="container">
   <div class="row">
       <p>${l.jobname}</p>
       <div class="col-xs-12 col-md-4 design">
           <div class="design-head row">
               <img class="img-responsive pull-left" src="${l.head}" alt="">
               <p>${l.jobname}</p>
               <span>${l.intro}</span>
           </div>
           <div class="design-main">
               <table class="level" border="1">
                   <tbody>
                   <tr class="">
                       <td>门槛:<img src="${pageContext.request.contextPath}/t8/img/star.png" alt=""></td>
                       <td>难易程度:<img src="${pageContext.request.contextPath}/t8/img/star.png" alt=""><img src="${pageContext.request.contextPath}/t8/img/star.png" alt=""></td>
                   </tr>
                   <tr>
                       <td>成长周期:1-3年</td>
                       <td>稀缺程度:345家公司需要</td>
                   </tr>
                   </tbody>
               </table>
               <table class="salary" border="1">
                   <tbody>
                   <tr>
                       <td rowspan="3" class="text-center">薪资待遇</td>
                       <td>0-1年</td>
                       <td>${l.lowSalary}</td>
                   </tr>
                   <tr>
                       <td>1-3年</td>
                       <td>${l.mediumSalary}</td>
                   </tr>
                   <tr>
                       <td>5-10年</td>
                       <td>${l.highSalary}</td>
                   </tr>
                   </tbody>
               </table>
           </div>
           <div class="design-foot">
               <table class="tip" border="1">
                   <tbody>
                   <tr>
                       <td>有286人正在学</td>
                   </tr>
                   <tr>
                       <td>${l.hint}</td>
                   </tr>
                   </tbody>
               </table>
           </div>
           <div class="hidden_over">
               <h4 class="text-center">${l.jobname}</h4>
               <p> ${l.jobsIntros.intros}
</p>
           </div>
       </div>
   </div>
</div>
</c:forEach>
<footer>
<tiles:insertAttribute name="tail"/>
</footer>
</body>
</html>


页面效果.


任务4算告一段落,明天进入任务5.


在今天还做了另外一件事情,就是create_at和update_at这2个时间戳在哪个阶段获取更精确.

我个人一开始打算是使用aop来做,后来想了一想你如果用aop的话还是要先经过拦截器,放到拦截器里做更精准(在点下提交按钮url请求过来肯定会被拦截器拦截到),转念一想其实用aop去切拦截器更好.(在拦截器之前就会被aop拦截)

实现过程基本是在拦截器里第一句代码执行获取时间的代码,再用io对象输出流(ObjectOutputstream)把这个对象输出成一个文件,这就达到了冻结这个(内存里的对象)时间戳的目的,然后在service里执行方法的时候再用输入流读取这个时间戳. 

恩,理想是丰满的,现实是残酷的.

跟老大讨论一波,这个方式获取的时间的确是误差最小的,但是,如果遇到高并发???

同时成百上千的注册/提交,io流这个东西会占用多少资源? 缓存的清理?想想都蛋疼,

后来决定了还是把这种东西写死到Service层里就好了,之前我写在controller的,写到service误差更大了.-. 不过也可以忽略不计了,

误差也只在10几毫秒而已.


明天计划的事情:

tag时间处理的方式去处理一下时间,虽然我觉得我自己写的工具更简单好用..


遇到的问题:

程序打包在服务器上和主方法里都能跑,用测试类 就会报找不到方法.

项目已经可以运行.但是测试就会报方法没有找到.

我亲爱的飞飞,你可有idea?

 
收获:

又一次被老大的知识灌醉.


返回列表 返回列表
评论

    分享到