您的位置:首页 > 编程语言 > Java开发

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

2017-01-11 11:42 519 查看
服务器我做了列表展示,添加视频,和修改单个视频,没有做删除







基本主要的就这三个页面操作的,还有一个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: fanyafeng@live.cn
*/
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: fanyafeng@live.cn
*/
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: fanyafeng@live.cn
*/
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: fanyafeng@live.cn
*/
@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: fanyafeng@live.cn
*/
@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";
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息