基于Spring+JPA+Swagger的项目(1)

本文介绍了基于Spring、JPA和Swagger的项目配置,包括Java、MySQL、Maven等环境设置。讲解了简单的JPA应用步骤,从数据库设计到实体类、DAO、Service和Controller的创建。同时,探讨了@GetMapping和@PostMapping的区别,并指出在Controller中通过路由传递参数的方法。文章还分享了在实际操作中遇到的问题,如@Autowired的使用、数据库列名的对应以及事务管理。最后,作者提出了后续学习的重点,如路由设计、查询逻辑优化和异常处理等。
摘要由CSDN通过智能技术生成

基于Spring+JPA+Swagger的项目(1)

环境配置

  1. java1.8
  2. mysql5.7
  3. maven3.6.0
  4. lombok
  5. JPA
  6. Swagger

简单的JPA应用

  • 第一步在数据库中创建相关的数据,表信息等等,创建实体类Entity,实体类内属性与表信息一一对应.实际上,可以直接创建实体类,JPA会自动在数据库中建表.
  • 第二步根据刚才的实体类创建DAO接口,直接extends JPAReposity即可,在JPA库中已经包含基本的查询语句,删除语句,以及插入语句,但是功能比较简单,对于复杂的语句依旧需要自定义sql语句
  • 第三部创建Service,该接口中定义相关的方法,之后在ServiceImpl中实现该方法,大部分直接调用DAO中的增删改查即可
  • 第四部创建Controller,在该层中,主要根据路由,获取用户访问路径,根据路径设计业务逻辑,然后直接调用ServiceImpl中的方法去实现,最后通过return,可以返回给页面String类型,直接输出到页面上.

今天遇到部分问题

@GetMapping和@PostMapping 和@RequestMapping区别

  1. @GetMapping:用于将HTTP get请求映射到特定处理程序的方法注解,是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。

  2. @PostMapping: 用于将HTTP post请求映射到特定处理程序的方法注解,是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写

  3. @RequestMapping:一般情况下都是用@RequestMapping(method=RequestMethod.),因为@RequestMapping可以直接替代以上两个注解,但是以上两个注解并不能替代@RequestMapping,@RequestMapping相当于以上两个注解的父类!

在controller中通过路由传递参数进行查询的调用

  • 使用@PathVariable注解
    @RequestMapping(value = "/{id}/{str}") 
    public ModelAndView helloWorld(@PathVariable String id, @PathVariable String str) { 
         System.out.println(id); 
        System.out.println(str); 
        return new ModelAndView("/helloWorld"); 
     }
  • 对于要加载的类,每个类之前都要添加一个@Autowired 不然该对象Bean无法被加载,会报出NullException的错误

  • 在spring中的实体类一定要和自己数据库中完全对应,否则,在Spring中的变量会自动在表中创建一个新的column

  • JPAReposity基本上实现了所有基础的sql操作,直接在DAO类中继承该类,最后直接调用就可以,基础的函数包括基础的增删改查

  • 对数据库进行插入删除时,必须在Service层前加上@transaction,否则是无法执行的

  • 使用List<?>统一接收List是可行的,会不会出现其他问题暂时不知

  • Entity->EntityDAO->EntityService->EntityServiceImpl->Controller

之后需要学习的部分

  1. 如何设计更好的路由,减少重复代码
  2. 在设计查询时,逻辑是否完整,例如在查询任务时,是不是用contains比全匹配更有意义
  3. 设计异常页面的跳转
  4. 自定义查询语句与删除语句,增加程序可用性
  5. 暴露给前端的接口,应该是Json格式,包含是否成功,msg,以及要传递的数据等等
  6. 使用Swagger返回接口的文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值