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)相关推荐

  1. Spring Boot整合Spring Data JPA操作数据

    一. Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 J ...

  2. Spring Data JPA 五分钟快速入门和实践

    Spring Data JPA(类似于Java Web 中的 DAO) 操作声明持久层的接口(Repository) 三个核心接口: CrudRepository PagingAndSortingRe ...

  3. java 整合solr_SpringBoot整合Spring Data Solr

    此文不讲solr相关,只讲整合,内容清单如下 1. maven依赖坐标 2. application.properties配置 3. Java Config配置 1. maven坐标 org.spri ...

  4. Spring Data JPA(官方文档翻译)

    关于本书 介绍 关于这本指南 第一章 前言 第二章 新增及注意点 第三章 项目依赖 第四章 使用Spring Data Repositories 4.1 核心概念 4.2 查询方法 4.3 定义rep ...

  5. Hibernate、JPA、Spring Data JPA,傻傻分不清

    国庆假期接近尾声,明天最后一天了,要开始收收心啦- 今天讲讲一个初学者(或许一些老手)可能没去搞懂的几个概念:Hibernate.JPA.Spring Data JPA 之间的关联. 嘿嘿,前段时间有 ...

  6. Spring Data JPA 与 MyBatis 对比,你喜欢用哪个?

    来源:jianshu.com/p/3927c2b6acc0 概述 Spring Data JPA是Spring Data的子模块.使用Spring Data,使得基于"repositorie ...

  7. elasticsearch之hello(spring data整合)

    1.书写pom.xml文件 <dependencies><dependency><groupId>org.springframework.data</grou ...

  8. Spring Boot 、Spring Data JPA、Hibernate集成

    ###什么是JPA JPA是用于管理Java EE 和Java SE环境中的持久化,以及对象/关系映射的JAVA API 最新规范为"JSR 338:Java Persistence 2.1 ...

  9. Spring Data JPA例子[基于Spring Boot、Mysql]

    关于Spring Data Spring社区的一个顶级工程,主要用于简化数据(关系型&非关系型)访问,如果我们使用Spring Data来开发程序的话,那么可以省去很多低级别的数据访问操作,如 ...

  10. 一步步学习 Spring Data 系列之JPA(一)

    2019独角兽企业重金招聘Python工程师标准>>> 大概有半年多没有写博客了,主要是最近忙于工作,也没来得及与大家分享技术.当然现在的技术大多都有人写其博客分享了,也找不到合适写 ...

最新文章

  1. 计算机网络实验ip数据报转发,计算机网络实验报告三网际协议IP.doc
  2. Javascript中的树结构
  3. 6、JUC--同步锁Lock
  4. python入门有基础-Python入门必须知道的11个知识点
  5. ABAP-SQL基础知识
  6. 字典哈希表的实现原理_GCC中unordered_(multi)set/map的实现原理 (Part 2 图解哈希表结构)...
  7. 技术干货丨隐私保护下的迁移算法
  8. 通过jdbc的mysql驱动连接oceanbase mysql模式数据库
  9. CSS骚操作之表单验证功能的实现代码
  10. python 制作动画片_cocos2d from python Animation 动画片的实现
  11. 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 F题 Overlapping Rectangles(线段树)
  12. 人工智能和金融是天作之合的5个理由
  13. 解决MarkDown打开出现:awesomium web-brower framework This view has crashed
  14. 小白进阶之影片TS版,TC版,CAM版,HD版,BD版,DVD,HDVD等版本介绍
  15. sql server 不是可以识别的 内置函数名称
  16. Win10 如何修改C:\Users\下的用户名
  17. MQTT QOS Retained Message
  18. Sendcloud邮件发送api拼接问题
  19. 怎么重置imac_macbookpro怎么恢复出厂设置
  20. 怎么找回xmind意外关机的文件_Xmind 导图保存丢失怎么找回?

热门文章

  1. python 执行文件的扩展名_python脚本文件的扩展名是什么
  2. Anaconda3 + Python3.6 + PyTorch0.4.0 安装步骤
  3. python快乐数,快乐数 - SegmentFault 思否
  4. php打印上传错误信息,PHP上传文件错误信息说明
  5. LeetCode算法题-House Robber(Java实现)
  6. OrderOnline——功能需求
  7. CentOS安装第三方yum源EPEL
  8. CentOS 7.X配置连接网络
  9. Codeforces 455B A Lot of Games 字典树上博弈
  10. iOS 网络https传输