服务器我做了列表展示,添加视频,和修改单个视频,没有做删除
基本主要的就这三个页面操作的,还有一个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";
}
}