视频列表的android客户端和springmvc服务端实现(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23195583/article/details/54342109

服务器我做了列表展示,添加视频,和修改单个视频,没有做删除
这里写图片描述
这里写图片描述
这里写图片描述
基本主要的就这三个页面操作的,还有一个json接口,我页面用的jsp挺丑的。。。
先来看一下mybaits操作sql的部分:
mapper接口:

package com.fanyafeng.mapper;

import com.fanyafeng.model.VideosModel;

import java.util.List;
import java.util.Map;

/**
 * Author: fanyafeng
 * Data: 17/1/4 11:09
 * Email: [email protected]
 */
public interface IVideosMapper {
    public VideosModel findVideoById(Integer id);

    public List<VideosModel> findAllVideo();

    public List<VideosModel> findVideoByPage(Map map);

    public void insertVideo(VideosModel videosModel);

    public void updateVideoById(VideosModel videosModel);
}

sql语句的mapper.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">
<!-- SELECT * FROM USER WHERE id = #{id}-->
<mapper namespace="com.fanyafeng.mapper.IVideosMapper">
    <select id="findAllVideo" resultType="com.fanyafeng.model.VideosModel">
        SELECT * FROM videos;
    </select>

    <select id="findVideoByPage" parameterType="Map" resultType="com.fanyafeng.model.VideosModel">
        SELECT * FROM videos limit #{s},#{e}
    </select>

    <insert id="insertVideo" parameterType="com.fanyafeng.model.VideosModel">
    insert into videos (img,video_url,title,des,header_img) values (#{img},#{video_url},#{title},#{des},#{header_img})
    </insert>

    <select id="findVideoById" parameterType="Integer" resultType="com.fanyafeng.model.VideosModel">
        SELECT * FROM videos where id = #{id};
    </select>

    <update id="updateVideoById" parameterType="com.fanyafeng.model.VideosModel">
        UPDATE videos
        SET
            img = #{img},
            video_url = #{video_url},
            title = #{title},
            des = #{des},
            header_img = #{header_img}
        WHERE
    id = #{id}
    </update>

</mapper>

这里有五个接口,增删查,还有为客户端接口服务的,这个算是持久层吧,还有一个model忘了上了,我没有做关联,仅仅是一个单表
model:

package com.fanyafeng.model;

/**
 * Author: fanyafeng
 * Data: 17/1/4 10:52
 * Email: [email protected]
 */
public class VideosModel extends BaseModel {
    private int id;
    private String img;
    private String video_url;
    private String title;
    private String des;
    private String header_img;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getImg() {
        return img;
    }

    public void setImg(String img) {
        this.img = img;
    }

    public String getVideo_url() {
        return video_url;
    }

    public void setVideo_url(String video_url) {
        this.video_url = video_url;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
    }

    public String getHeader_img() {
        return header_img;
    }

    public void setHeader_img(String header_img) {
        this.header_img = header_img;
    }

    @Override
    public String toString() {
        return "VideosModel{" +
                "id=" + id +
                ", img='" + img + '\'' +
                ", video_url='" + video_url + '\'' +
                ", title='" + title + '\'' +
                ", des='" + des + '\'' +
                ", header_img='" + header_img + '\'' +
                '}';
    }
}

再来看一下业务层:
接口:

package com.fanyafeng.service;

import com.fanyafeng.model.VideosModel;

import java.util.List;

/**
 * Author: fanyafeng
 * Data: 17/1/4 11:16
 * Email: [email protected]
 */
public interface VideoService {
    public VideosModel findVideoById(Integer id);

    public List<VideosModel> findAllVideo();

    public List<VideosModel> findVideoByPage(Integer id);

    public void insertVideo(VideosModel videosModel);

    public void updateVideoById(VideosModel videosModel);
}

接口的实现:

package com.fanyafeng.service.impl;

import com.fanyafeng.mapper.IUserMapper;
import com.fanyafeng.mapper.IVideosMapper;
import com.fanyafeng.model.VideosModel;
import com.fanyafeng.service.VideoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

/**
 * Author: fanyafeng
 * Data: 17/1/4 11:17
 * Email: [email protected]
 */
@Service
public class VideoServiceImpl implements VideoService {

    @Autowired
    private IVideosMapper iVideosMapper;

    @Override
    public VideosModel findVideoById(Integer id) {
        return iVideosMapper.findVideoById(id);
    }

    @Override
    public List<VideosModel> findAllVideo() {
        return iVideosMapper.findAllVideo();
    }

    @Override
    public List<VideosModel> findVideoByPage(Integer page) {
        int s = page * 10;
        int e = page * 10 + 10;
        Map<String, Object> stringMap = new HashMap<>();
        stringMap.put("s", s);
        stringMap.put("e", e);
        return iVideosMapper.findVideoByPage(stringMap);
    }

    @Override
    public void insertVideo(VideosModel videosModel) {
        iVideosMapper.insertVideo(videosModel);
    }

    @Override
    public void updateVideoById(VideosModel videosModel) {
        iVideosMapper.updateVideoById(videosModel);
    }
}

准备工作都做完了,看一下控制层:

package com.fanyafeng.controller;

import com.fanyafeng.interceptor.AccessRequired;
import com.fanyafeng.model.ItemsCustomModel;
import com.fanyafeng.model.ItemsQueryVo;
import com.fanyafeng.model.VideosModel;
import com.fanyafeng.service.VideoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.annotation.AccessType;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.util.*;

/**
 * Author: fanyafeng
 * Data: 17/1/4 10:48
 * Email: [email protected]
 */
@Controller
@RequestMapping(value = "/videos")
public class VideosController {

    @Autowired
    private VideoService videoService;

    @RequestMapping(value = "/videosList")
    public String videoList(Model model, VideosModel videosModel) {

//        List<ItemsCustomModel> itemsCustomModelList = itemsService.findItemsList(itemsQueryVo);
//        model.addAttribute("itemsList", itemsCustomModelList);

        List<VideosModel> videosModelList = videoService.findAllVideo();
        model.addAttribute("videoList", videosModelList);
        return "videos/videoList";
    }

    @AccessRequired(required = false)
    @RequestMapping(value = "/findVideoByPage", produces = "application/json")
    @ResponseBody
    public Map<String, Object> getVideoList(int page) {
        Map<String, Object> objectsMap = new HashMap<>();
        objectsMap.put("state", "ok");
        objectsMap.put("videoList", videoService.findVideoByPage(page));
        return objectsMap;
    }

    /**
     * 返回文件类的接口
     *
     * @return
     */
    @RequestMapping(value = "/getPic", produces = MediaType.IMAGE_JPEG_VALUE)//图片可以
    @ResponseBody
    public byte[] getPic() {
        File f = new File("/Users/fanyafeng/IntelliJProject/SpringMybatisDemo/src/main/resources/apk/9.jpg");
        return getByte(f);
    }


    public static byte[] getByte(File file) {
        byte[] bytes = null;
        if (file != null) {
            InputStream is = null;
            try {
                is = new FileInputStream(file);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            int length = (int) file.length();
            if (length > Integer.MAX_VALUE)   //当文件的长度超过了int的最大值
            {
                System.out.println("this file is max ");
                return null;
            }
            bytes = new byte[length];
            int offset = 0;
            int numRead = 0;
            try {
                while (offset < bytes.length && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) {
                    offset += numRead;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            //如果得到的字节长度和file实际的长度不一致就可能出错了
            if (offset < bytes.length) {
                System.out.println("file length is error");
                return null;
            }
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return bytes;
    }

    @RequestMapping(value = "/insertVideo")
    public String insertVideo() {
        return "videos/insertVideo";
    }

    @RequestMapping(value = "/editVideo")
    public String editVide(Model model, Integer id) {
        VideosModel videosModel = videoService.findVideoById(id);
        if (videosModel != null) {
            model.addAttribute("video", videosModel);
        }
        return "videos/editVideo";
    }

    @RequestMapping(value = "/editVideoSubmit")
    public String insertVideoSubmit(HttpServletRequest httpServletRequest, @ModelAttribute("video") VideosModel videosModel) {

        if (videosModel.getId() == 0) {
            System.out.print("获取的id的数值:无");
            videoService.insertVideo(videosModel);
        } else {
            videoService.updateVideoById(videosModel);
        }
        return "redirect:videosList";
    }

}

猜你喜欢

转载自blog.csdn.net/qq_23195583/article/details/54342109