摘要:用于管理数据实体及持久化相关的处理,则是整个业务的核心。首先,对于的每个接口,我们在中定义对应请求接收方法说明注解,表明这个专门用于服务,返回值不是传统的数据。对于来讲,仅仅是一个简单的继承了的接口。
开发配置
依赖包准备
这里选用mysql作为数据库,需要用到的包有三个,需要将相关依赖写入pom.xml,如下:
org.springframework.boot spring-boot-starter-jdbc mysql mysql-connector-java org.springframework.boot spring-boot-starter-data-jpa
数据库连接设定
在src/main/resources/application.properties文件中,加入以下配置信息:
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=test spring.datasource.password=test spring.datasource.tomcat.max-idle=10 spring.datasource.tomcat.max-wait=10000 spring.datasource.tomcat.min-idle=5 spring.datasource.tomcat.initial-size=5
其中test是数据库名称,username和password可自行设置和修改
实体定义我们将要操作的实体很简单,只有一个id属性和一个name属性。定义如下:
@Entity @Table(name="T_USER") public class User { /** * 用户ID */ @Id @GeneratedValue private int id; /** * 用户名 */ private String name; // GETTER和SETTER此处省略... }
<说明>
@Entity注解,表明了这是一个Entity,可以使用默认的ORM规则,即class名即为要更新的数据表名
@Table注解,可以指定这个Entity要更新的数据表名,也不使用默认的ORM规则。
@Id注解,表明了这个数据表的主键ID,这个主键可以是AUTO_INCREMENT类型的数据。
备忘
在测试中,此处的id类型使用Integer会报错,原因尚不清楚,使用int则无问题。
以简单的User对象为例,我们来实现一个简(chou)单(lou)的的CRUD处理
Restful风格
对于简单的增删改查功能,一般的restful接口定义如下:
GET /user # 取得user列表 POST /user # 提交user PUT /user # 更新user PATCH /user # 更新user(个别属性) DELETE /user/:id # 删除user
路由设置
对于纯数据的Java后端架构来讲,MVC中少了View,但M和C仍是必不可少的。Model用于管理数据实体及持久化相关的处理,Controller则是整个业务的核心。
首先,对于user的每个接口,我们在controller中定义对应请求接收方法:
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("") public ResponseEntity> getList() { return new ResponseEntity
<说明>
@RestController注解,表明这个controller专门用于Restful服务,返回值不是传统的WEB数据。
@RequestMapping注解,表明访问的相对路径为“/user"
@GetMapping、@PostMapping、@PatchMapping和@DeleteMapping分别对应了GET、POST、PATCH和DELETE请求,这四个方法将分别接收对应访问路径上对应方法的HTTP请求。它们也可用@RequestMapping(value="", method=RequestMethod.POST(或者GET、PATCH等)来替代。
@PathVariable用于取得访问路径中的参数
ResponseEntity用于返回处理结果与错误码
上面通过UserService的调用,实现了user的CRUD操作。Spring通过@Autowired注解,会自动创建UserService的实例。
CRUD操作通过UserService的相关操作,我们可以很容易的对user表进行CRUD操作。代码如下:
@Service public class UserService { @Autowired private UserRepository userRepo; public IterablegetUserList() { return userRepo.findAll(); } public User save(User user) { return userRepo.save(user); } public void remove(int id) { userRepo.delete(id); } }
<说明>
通过@Service注解,Spring会自动实例化到UserController中
Service中注解了@Autowired的实例userRepo,实际上是继承了CrudRepository的一个接口。Repository在Spring的概念体系中是类似于传统DAO的实体,一个Repository对应一个数据表的操作。
UserService中使用的findAll、save和delete方法,均是CrudRepository中预定义的方法。
对于UserRepository来讲,仅仅是一个简单的继承了CrudRepository的接口。代码如下:
public interface UserRepository extends CrudRepository{}
关于Repository的说明,可以看这篇文章pring Boot学习笔记(三)Repository的使用
结果确认简单接口测试可使用POSTMAN进行,结果如下:
取得用户列表
插入2条数据
取得用户列表
更新用户
删除用户
取得用户列表
目前只是实现了一个简单的CRUD操作,就这个简单流程来讲,以下几点尚欠缺:
返回值需要有结构化的设计
分页和排序功能也有欠缺。
缺少自动化测试
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/70752.html
摘要:前两篇已经构建了标准工程实例,也整合了实现了简单数据库访问,本篇主要更深入的学习下,实现较为完整的数据库的标准服务。到这里,最复杂的数据访问基本就算编写完了。 前两篇已经构建了RESTful API标准工程实例,也整合了MyBatis实现了简单数据库访问,本篇主要更深入的学习下,实现较为完整的数据库CRUD的标准服务。 首先看下要实现的效果吧,完成下面截图部分的API,除了CRUD之外...
摘要:哪吒社区技能树打卡打卡贴函数式接口简介领域优质创作者哪吒公众号作者架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习一起进步欢迎点赞收藏留言前情提要无意间听到领导们的谈话,现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干 ? 哪吒社区Java技能树打卡 【打卡贴 day2...
摘要:代码自动生成底层服务有很多通用的,利用代码生成最好不过了,这里作者将代码生成放在中的,避免与正式代码冲突。主要通过来实现,项目中的模板文件可以自行定义。相互学习,共同进步 从零开始学习Spring Boot也有几天时间了,项目已经不允许我这么慢慢学习了,急需底层变现实现一套简单的Restful API用于业务支撑。 于是在GitHub上找到了一个不错的demo,直接看demo搭建自己的...
摘要:使用则需要及以上版本。开发使用框架七系列教程目录系列教程大纲快速入门实践实践整合整合中和实践整合中实现缓存中实现通信集成测试及部署实战图书管理系统 WebFlux 系列教程大纲 一、背景 大家都知道,Spring Framework 是 Java/Spring 应用程序跨平台开发框架,也是 Java EE(Java Enterprise Edition) 轻量级框架,其 Spring ...
摘要:响应式编程是基于异步和事件驱动的非阻塞程序,只是垂直通过在内启动少量线程扩展,而不是水平通过集群扩展。三特性常用的生产的特性如下响应式编程模型适用性内嵌容器组件还有对日志消息测试及扩展等支持。 摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 02:WebFlux 快速入门实践 文章工程: JDK...
阅读 4317·2021-11-22 09:34
阅读 2648·2021-11-12 10:36
阅读 706·2021-08-18 10:23
阅读 2603·2019-08-30 15:55
阅读 3075·2019-08-30 15:53
阅读 2050·2019-08-30 15:44
阅读 1257·2019-08-29 15:37
阅读 1268·2019-08-29 13:04