Rest架构风格的实践(使用通用Mapper技术)
1、根据用户 id 查询用户数据
1.1 controll控制器
@RequestMapping("restful/user")
@Controller
public class RestfulUserController {
@Autowired
private NewUserService newUserService;
/**
* 根据用户 id查询
* @param id
* @return
*/
@RequestMapping(value="{id}",method=RequestMethod.GET)
@ResponseBody
public ResponseEntity<User> queryUserByid(@PathVariable("id") Long id){
try {
User user= this.newUserService.queryUserid(id);
if (user==null) {
//请求资源不存在 404
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
}
//请求资源存在,200
// return ResponseEntity.status(HttpStatus.OK).body(user);
return ResponseEntity.ok(user);
} catch (Exception e) {
e.printStackTrace();
}
//
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
1.2 通用Mapper
public interface NewUserMapper extends Mapper<User>{
}
1.3 Service设置
@Service
public class NewUserService { @Autowired
private NewUserMapper newUsermapper;public User queryUserid(Long id) {
return this.newUsermapper.selectByPrimaryKey(id);
} }
1.4查询

2、新增用户
2.1 Controller
@RequestMapping("restful/user")
@Controller
public class RestfulUserController {
@Autowired
private NewUserService newUserService;
/**
* 插入用户
* @param user
* @return
*/
@RequestMapping(method=RequestMethod.POST)
public ResponseEntity<Void> insertUser(User user){
try {
//添加成功
this.newUserService.saveUser(user);
return ResponseEntity.status(HttpStatus.CREATED).build();
} catch (Exception e) {
e.printStackTrace();
}
//
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
2.2 service设置
@Service
public class NewUserService { @Autowired
private NewUserMapper newUsermapper;public void saveUser(User user) {
this.newUsermapper.insert(user);
} }
3、修改数据
3.1 对于 PUT请求方式,默认不可以提交表单数据的,必须使用过滤器进行配置。。
在 Web.xml中配置过滤器
<filter>
<filter-name>HttpMethodFilter</filter-name>
<filter-class>org.springframeword.web.filter.HttpPutFormContentFilter</filter-calss> 此过滤器只能处理PUT请求
</filter>
<filter-mapping>
<filter-name>HttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.2 Controller设置
@RequestMapping("restful/user")
@Controller
public class RestfulUserController {
@Autowired
private NewUserService newUserService;
/**
* 更新用户数据
* @param user
* @return
*/
@RequestMapping(method=RequestMethod.PUT)
public ResponseEntity<Void> updateUser(User user){
try {
//修改成功
this.newUserService.updateuser(user);
return ResponseEntity.status(HttpStatus.NO_CONTENT).build();
} catch (Exception e) {
e.printStackTrace();
}
//
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
3.3 servicer设置
@Service
public class NewUserService { @Autowired
private NewUserMapper newUsermapper;public void updateuser(User user) {
this.newUsermapper.updateByPrimaryKeySelective(user);
} }
4、删除数据
4.1 默认请求方式中,DELETE方式不会提交表单的,必须在web.xml中进行配置
<!--将POST请求转化为DELETE或者是PUT要用 _method指定真正的请求参数--> 此过滤器更加强大 <filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filer-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filer>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4.2 Controller
@RequestMapping("restful/user")
@Controller
public class RestfulUserController {
@Autowired
private NewUserService newUserService;
/**
* 删除用户数据
* @return
*/
@RequestMapping(method=RequestMethod.DELETE) DELETE请求方式
public ResponseEntity<Void> deletedUser(@RequestParam(value="id",defaultValue="0") Long id){
try {
if (id.intValue()==0) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
}
this.newUserService.deleteuserByid(id);
return ResponseEntity.status(HttpStatus.NO_CONTENT).body(null);
} catch (Exception e) {
e.printStackTrace();
}
//
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}
4.3 Service设置
@Service
public class NewUserService {
@Autowired
private NewUserMapper newUsermapper;
public void deleteuserByid(Long id) {
this.newUsermapper.deleteByPrimaryKey(id);
} }
Rest架构风格的实践(使用通用Mapper技术)的更多相关文章
- 【DDD】领域驱动设计实践 —— 架构风格及架构实例
概述 DDD为复杂软件的设计提供了指导思想,其将易发生变化的业务核心域放置在限定上下文中,在确保核心域一致性和内聚性的基础上,DDD可以被多种语言和多种技术框架实现,具体的框架实现需要根据实际的业务场 ...
- 理解本真的REST架构风格
http://kb.cnblogs.com/page/186516/ 引子 在移动互联网.云计算迅猛发展的今天,作为一名Web开发者,如果您还没听说过“REST”这个buzzword,显然已经落 ...
- 【转载】理解本真的REST架构风格
本文将带您领略REST架构的起源.与Web的关系.REST架构的本质及特性,以及REST架构与其他架构风格之间的比较. 引子 在移动互联网.云计算迅猛发展的今天,作为一名Web开发者,如果您还没听说过 ...
- 架构-架构风格:REST
ylbtech-架构-架构风格:REST REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博 ...
- 理解本真的REST架构风格(转,解释的最清楚)
add by zhj start: Fielding在批判性继承前人研究成果的基础上,建立起来一整套研究和评价软件架构的方法论.这套方法论的核心是“架构风格”这个概念.架构风格是一种研究和评价软件架构 ...
- RESTful 架构风格
在移动互联网的大潮下,『微服务』的概念也越来越被大家接受并应用于实践,日益增多的web service逐渐统一于RESTful 架构风格,如果开发者对RESTful 架构风格不甚了解,则开发出的所谓R ...
- 深入探索REST(2):理解本真的REST架构风格
文章转载地址:https://www.infoq.cn/article/understanding-restful-style/,如引用请标注文章原地址 引子 在移动互联网.云计算迅猛发展的今天,作为 ...
- springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+freemarker+layui
前言: 开发环境:IDEA+jdk1.8+windows10 目标:使用springboot整合druid数据源+mysql+mybatis+通用mapper插件+pagehelper插件+mybat ...
- 从零搭建Spring Boot脚手架(4):手写Mybatis通用Mapper
1. 前言 今天继续搭建我们的kono Spring Boot脚手架,上一文把国内最流行的ORM框架Mybatis也集成了进去.但是很多时候我们希望有一些开箱即用的通用Mapper来简化我们的开发.我 ...
随机推荐
- pta l2-28(秀恩爱分得快)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805054698012672 题意:给n个人,m张照片,在同一张 ...
- Android四大组件总结
1:Actiivty 用户可以看见并可以操作的界面 Activity开启方式:startActivityForResult :startActivity Activity生命周期: onCreate ...
- 互联网进行限流策略的Semaphore信号量使用
在Semaphore信号量非常适合高并发访问,新系统在上线之前,要对系统的访问量进行评估,当然这个值肯定不是随便拍拍脑袋就能想出来的,是经过以往的经验.数据.历年的访问量,已经推广力度进行一个合理的评 ...
- maven 打 fat包(jar包有了全部依赖)插件
<plugin> <artifactId> maven-assembly-plugin </artifactId> <configuration> &l ...
- swift - scrollview 判断左右移动, 以及上下两个view联动
核心代码 1. 2. 3. 界面代码VFL /* 浏览作品view*/ import UIKit /** * 图片浏览器(大图和缩略图) */ class JYBrowseWorksView: UIV ...
- C# 创建WebService的简单示例
工具Visual Studio 2013 1.创建一个空的Web应用程序. 2.鼠标右击项目,添加->新建项 选择Web服务(ASMX),点击添加.一个简单的webservice就创建完成了.
- TableViewCell去除选中效果
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [tableV ...
- Linux下的crontab定时执行任务详解
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“cr ...
- centos7下docker1.12.5学习笔记
一.Docker简介 Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相 ...
- bootstrap 折叠collapse失效
手动点击折叠,然后调用折叠全部以后,在手动点击折叠项,折叠失效. 方法,折叠项是通过添加或删除".in"来实现,实现如下 $(".collapse.in").c ...