Spring(Data-Rest)
2019独角兽企业重金招聘Python工程师标准>>>
Spring MVC(rest):
database->do->dao->service->controller/action
database<-do<-dao<-service<-controller/action
controller(action)->vo->response(parameter/json)->curl
controller(action)<-vo<-request(parameter/json) <-curl
Spring MVC(web):
database->do->dao->service->controller/action
database<-do<-dao<-service<-controller/action
controller(action)->vo + view(tempalte)->response(html) ->browser
controller(action)<-vo <-request(form/json) <-browser
Spring Data(jpa+dao/repository)
database->do->dao
database->do->dao
Spring Data(jpa+dao/repository):
接口CrudRepository<TObject, CID>
接口PagingAndSortingRepository<TObject, CID>
接口JpaRepository<TObject, CID>
Spring Data Rest(jpa+dao/repository+rest):
接口CrudRepository<TObject, CID>
接口PagingAndSortingRepository<TObject, CID>
接口JpaRepository<TObject, CID>
+
@RepositoryRestResource(path = "xxx")
@RestResource(path = "yyyy", rel = "yyyyyyyy")
pom.xml
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-rest</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency>
application.properties
spring.profiles.active=dev
application-dev.properties
server.port=8080#spring.data.rest.base-path=/data/apispring.datasource.url=jdbc:mysql://localhost:3306/zm_dev
spring.datasource.username=zhaomeng
spring.datasource.password=zhaomeng
spring.datasource.driver-class-name=com.mysql.jdbc.Driver##create|create-drop|update|validate
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.show_sql=true
#hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
#hibernate.hbm2ddl.auto= update
entitymanager.packagesToScan=com.zcs.data.system
model
@Entity
@Table(name = "zm_user")
public class User {@Id@GeneratedValue(strategy = GenerationType.AUTO)private Integer id;@Column(name = "user_name")private String userName;private String password;@Column(name = "nick_name")private String nickName;private String email;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getNickName() {return nickName;}public void setNickName(String nickName) {this.nickName = nickName;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}
}
repository
public interface ZMRepository extends JpaRepository<User, Integer>{Page<User> findAll(Pageable arg0);long count();void delete(Iterable<? extends User> user);void delete(Integer id);void delete(User user);void deleteAll();boolean exists(Integer id);User findOne(Integer id);void deleteAllInBatch();void deleteInBatch(Iterable<User> arg0);List<User> findAll();List<User> findAll(Iterable<Integer> id) ;List<User> findAll(Sort arg0);void flush();User getOne(Integer id);@Query("select c from User c where c.nickName = :nickName")List<User> findByNickNameUsingQuery(@Param("nickName") String firstname);@Query("select c from User c where c.nickName like %:nm%")List<User> searchByNickNameUsingQuery(@Param("nm") String firstname);@Query(value="select * from zm_user where name like %?1", nativeQuery=true)public List<UserModel> findByUuidOrAge(String name);@Modifying@Query(value="update zm_user o set o.name=:newName where o.name like %:nn")public int findByUuidOrAge(@Param("nn")String name,@Param("newName") String newName);}//can add @RepositoryRestResource(collectionResourceRel="employee",path="employee")
server startup
@SpringBootApplication
public class ZcsDataprocessorApplication {public static void main(String[] args) {SpringApplication.run(ZcsDataprocessorApplication.class, args);}
}
client test
curl -X GET http://127.0.0.1:8080/userscurl -X GET http://127.0.0.1:8080/users/3curl -X GET http://127.0.0.1:8080/users/search/findByNickNameUsingQuery?nickName=meego
转载于:https://my.oschina.net/igooglezm/blog/877147
Spring(Data-Rest)相关推荐
- Spring Boot整合Spring Data JPA操作数据
一. Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 J ...
- Spring Data JPA 五分钟快速入门和实践
Spring Data JPA(类似于Java Web 中的 DAO) 操作声明持久层的接口(Repository) 三个核心接口: CrudRepository PagingAndSortingRe ...
- java 整合solr_SpringBoot整合Spring Data Solr
此文不讲solr相关,只讲整合,内容清单如下 1. maven依赖坐标 2. application.properties配置 3. Java Config配置 1. maven坐标 org.spri ...
- Spring Data JPA(官方文档翻译)
关于本书 介绍 关于这本指南 第一章 前言 第二章 新增及注意点 第三章 项目依赖 第四章 使用Spring Data Repositories 4.1 核心概念 4.2 查询方法 4.3 定义rep ...
- Hibernate、JPA、Spring Data JPA,傻傻分不清
国庆假期接近尾声,明天最后一天了,要开始收收心啦- 今天讲讲一个初学者(或许一些老手)可能没去搞懂的几个概念:Hibernate.JPA.Spring Data JPA 之间的关联. 嘿嘿,前段时间有 ...
- Spring Data JPA 与 MyBatis 对比,你喜欢用哪个?
来源:jianshu.com/p/3927c2b6acc0 概述 Spring Data JPA是Spring Data的子模块.使用Spring Data,使得基于"repositorie ...
- elasticsearch之hello(spring data整合)
1.书写pom.xml文件 <dependencies><dependency><groupId>org.springframework.data</grou ...
- Spring Boot 、Spring Data JPA、Hibernate集成
###什么是JPA JPA是用于管理Java EE 和Java SE环境中的持久化,以及对象/关系映射的JAVA API 最新规范为"JSR 338:Java Persistence 2.1 ...
- Spring Data JPA例子[基于Spring Boot、Mysql]
关于Spring Data Spring社区的一个顶级工程,主要用于简化数据(关系型&非关系型)访问,如果我们使用Spring Data来开发程序的话,那么可以省去很多低级别的数据访问操作,如 ...
- 一步步学习 Spring Data 系列之JPA(一)
2019独角兽企业重金招聘Python工程师标准>>> 大概有半年多没有写博客了,主要是最近忙于工作,也没来得及与大家分享技术.当然现在的技术大多都有人写其博客分享了,也找不到合适写 ...
最新文章
- 计算机网络实验ip数据报转发,计算机网络实验报告三网际协议IP.doc
- Javascript中的树结构
- 6、JUC--同步锁Lock
- python入门有基础-Python入门必须知道的11个知识点
- ABAP-SQL基础知识
- 字典哈希表的实现原理_GCC中unordered_(multi)set/map的实现原理 (Part 2 图解哈希表结构)...
- 技术干货丨隐私保护下的迁移算法
- 通过jdbc的mysql驱动连接oceanbase mysql模式数据库
- CSS骚操作之表单验证功能的实现代码
- python 制作动画片_cocos2d from python Animation 动画片的实现
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 F题 Overlapping Rectangles(线段树)
- 人工智能和金融是天作之合的5个理由
- 解决MarkDown打开出现:awesomium web-brower framework This view has crashed
- 小白进阶之影片TS版,TC版,CAM版,HD版,BD版,DVD,HDVD等版本介绍
- sql server 不是可以识别的 内置函数名称
- Win10 如何修改C:\Users\下的用户名
- MQTT QOS Retained Message
- Sendcloud邮件发送api拼接问题
- 怎么重置imac_macbookpro怎么恢复出厂设置
- 怎么找回xmind意外关机的文件_Xmind 导图保存丢失怎么找回?
热门文章
- python 执行文件的扩展名_python脚本文件的扩展名是什么
- Anaconda3 + Python3.6 + PyTorch0.4.0 安装步骤
- python快乐数,快乐数 - SegmentFault 思否
- php打印上传错误信息,PHP上传文件错误信息说明
- LeetCode算法题-House Robber(Java实现)
- OrderOnline——功能需求
- CentOS安装第三方yum源EPEL
- CentOS 7.X配置连接网络
- Codeforces 455B A Lot of Games 字典树上博弈
- iOS 网络https传输