欢迎来到韦皓晨的博客

个人技术总结

技术概述

主要负责与数据库进行交互,获取、更新相关数据,并反馈给前端,我用了SpringBoot与JPA框架进行编写,学习该技术的原因是较为容易上手以及自己对于后端比较赶兴趣,这个难点在于怎么把数据正和城自己想要的样子。

技术详述

首先要在application.properties里面配置数据库相关信息

server.port=8082
spring.datasource.url=jdbc:mysql://121.5.114.159:3306/tmall?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username =root
spring.datasource.password =141516137.
spring.jmx.enabled=false

然后在pom.xml里面导入相关依赖

        <dependency>
            <groupId>alicloud-android-sdk-utils-no-ut-2.0.0</groupId>
            <artifactId>alicloud-android-sdk-utils-no-ut</artifactId>
            <version>2.0.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/main/resources/libs/push_android_6.3.3/libs/alicloud-android-sdk-utils-no-ut-2.0.0.jar</systemPath>
        </dependency>

创建实体类与数据库表一一对应,然后就可以对数据库进行操作了。

package com.example.caigouapp.entity;

import lombok.Data;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Data
@Entity
public class Food {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String ingredient;
    private double price;
    private Integer major;
    private String standard_weight;

}

再然后就是定义接口,实现接口,调用接口就可以实现对数据库的操作了。

    @Query(value = "select c.custom_menuid from Cart c where c.user_id = :id")
    String findCartMenus(@Param("id")Integer id);

controller

 @RequestMapping(value = "/menu",method = RequestMethod.POST)
    public JSONObject m1(@RequestBody String name){


        JSONObject par = JSONObject.parseObject(name);
        String str = par.getString("searchWord");
        //获得符合条件的菜谱列表
        List<Menu> m1 = menuService.findMenu(str);
        JSONArray array= JSONArray.parseArray(JSON.toJSONString(m1));
        JSONObject res = new JSONObject();
        res.put("menus",array);
        res.put("code",200);
        res.put("message","success");
        return res;

    }

问题与解决

在进行SQL语句执行的时候,如果要用到LIMIT关键字,不能使用JPA自带格式的SQL语句写法,要使用原生SQL语句
正确的格式:

 @Query(value = "select * from menu where tags = ?1 and status = 1 limit ?2,1",nativeQuery = true)
    Menu getMenuRandom(String tag,Integer randomNum);

总结

SpringBoot和JPA框架值学到了一点点东西,还有很多功能没有用到,在之后的实践中或者是学习中,完善自己的知识框架,学更多的东西解决更多的问题。虽然这门课已经结束了,但学习没有结束。希望能够学到更多的东西。

posted @ 2021-06-27 14:25  多喝热水呀  阅读(57)  评论(1编辑  收藏  举报