视频列表的android客户端和springmvc服务端实现(一)
2017-01-11 11:42
519 查看
服务器我做了列表展示,添加视频,和修改单个视频,没有做删除
基本主要的就这三个页面操作的,还有一个json接口,我页面用的jsp挺丑的。。。
先来看一下mybaits操作sql的部分:
mapper接口:
sql语句的mapper.xml
这里有五个接口,增删查,还有为客户端接口服务的,这个算是持久层吧,还有一个model忘了上了,我没有做关联,仅仅是一个单表
model:
再来看一下业务层:
接口:
接口的实现:
准备工作都做完了,看一下控制层:
基本主要的就这三个页面操作的,还有一个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"; } }
相关文章推荐
- 视频列表的android客户端和springmvc服务端实现(二)
- 视频列表的android客户端和springmvc服务端实现(三)
- Android客户端解密与C#服务端加密实现方法
- Android之类似网易新闻客户端首页新闻列表实现思路
- android一步一步实现视频客户端app(一)
- Android作为客户端,PC作为服务端:实现网络通信
- springmvc服务端+android客户端的文件上传
- Android应用中使用ListView实现数据列表显示(传智播客视频笔记)
- 足迹二:Android客户端与PC服务端之间的SOCKET通讯实现登陆功能(客户端 仅供学习)
- android客户端和servlet服务端的简单登录实现
- Android应用性能测试(客户端-服务端)平台实现
- SpringMvc 服务端发布json数据+android客户端解析json数据
- Android作为客户端,PC作为服务端:实现网络通信
- android 集合SSH服务端实现登录并保持session使客户端在登陆后能够获取服务端数据
- 实现Android手机(服务端)与PC(客户端)实现通信
- Android应用中使用ListView实现数据列表显示(传智播客视频笔记)
- Android作为客户端,PC作为服务端:实现网络通信
- Android作为客户端,PC作为服务端:实现网络通信!
- Android 客户端从服务端获取json数据并解析的实现代码
- Android--使用TCP/IP协议实现断点上传(客户端-服务端代码)