日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 编码分层_【平台开发】— 5.后端:代码分层

發布時間:2025/3/21 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 编码分层_【平台开发】— 5.后端:代码分层 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫準備完事兒,現在可以擼后端代碼了。

現在想要探索前后端如何交互,得后端返回出數據才行,既然如此,那就先來擼一個返回用戶信息,然后就可以判斷前端傳來的用戶名和密碼是不是存在,存在的話就可以登錄(PS:這里僅僅以學習目的,并不是說真正的登錄是這么實現)。

首先,熟悉下后端代碼的分層。

一、pojo

實體層,用來寫實體類,比如用戶User,它有很多個屬性,比如id,username等等,與上篇設計的數據庫表字段對應。

注意@Data這個注解,可以不用寫set()、get()、tostring()方法了,省去了不少功夫,而且代碼也更簡潔。

記得添加依賴,和在idea里安裝lombok插件。

package com.mock.platform.pojo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import lombok.Data;

import javax.persistence.*;

import java.util.Date;

@Entity

@Table(name = "user")

@JsonIgnoreProperties({"handler", "hibernateLazyInitializer"})

@Data

public class User {

@Id //聲明一個字段“id”為數據庫表的主鍵 @GeneratedValue(strategy = GenerationType.AUTO) //標注主鍵的生成策略,通過strategy 屬性指定 @Column(name = "id") //被標注字段在數據庫表中所對應字段的名稱 private int id; //用戶id private String username; //用戶名稱 private String password; //密碼 private Date createTime; //創建時間

// public int getId() {// return id;// }// public void setId(int id) {// this.id = id;// }// public String getUsername() {// return username;// }// public void setUsername(String username) {// this.username = username;

二、dao

DAO層,全稱Data Access Object,負責與數據庫打交道。

這個包下面則是用來寫dao文件,UserDAO類繼承JpaRepository,就提供了CRUD和分頁的各種常見功能。

JpaRepository,參數分別是實體類,和這個實體類id的類型。

package com.mock.platform.dao;

import com.mock.platform.pojo.User;

import org.springframework.data.jpa.repository.JpaRepository;

/*** UserDAO類繼承JpaRepository,就提供了CRUD和分頁 的各種常見功能。* JpaRepository,參數分別是實體類,和這個實體類id的類型。*/

public interface UserDAO extends JpaRepository {

}

三、service

業務邏輯層,主要的業務邏輯就是在這里實現了,所以說基本業務需求都更改這個層。

比如我實現一個方法用來查詢用戶信息。

package com.mock.platform.service;

import com.mock.platform.dao.UserDAO;

import com.mock.platform.pojo.User;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.domain.Sort;

import org.springframework.stereotype.Service;

import java.util.List;

@Service //標記這是一個service類public class UserService {

@Autowired //自動裝配UserDAO對象 UserDAO userDAO;

public List userList() {

// Sort 對象,表示通過 id 倒排序 Sort sort = Sort.by(Sort.Direction.DESC, "id");

// 通過 categoryDAO進行查詢 return userDAO.findAll(sort);

}

}

四、controller

這層通常用來控制業務邏輯,但是具體的業務邏輯并不在這里實現,而是通過調用service層里的方法。

比如我這里就是接收到前端的請求后,返回用戶信息。

package com.mock.platform.controller;

import com.mock.platform.pojo.User;

import com.mock.platform.service.UserService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController //標記這是控制器,下面每個方法的返回值都會直接轉換成json數據格式public class UserController {

@Autowired //自動裝配 CategoryService UserService userService;

@GetMapping("/users") //當訪問users,會獲取所有的User對象集合,并返回。RestController會自動轉成json給瀏覽器 public List userList() throws Exception {

return userService.userList();

}

}

五、properties

上面基本把邏輯都寫好了,現在還要在properties里配置好數據源,這樣整個服務才可以使用。

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my_platform?characterEncoding=UTF-8&serverTimezone=UTC

spring.datasource.username=root

spring.datasource.password=123456

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.hibernate.ddl-auto = none

#上下文地址為 my_platform

server.servlet.context-path=/my_platform

#jpa對實體類的默認字段會把駝峰命名的屬性,轉換為字段名的時候自動加上下劃線。 這個配置的作用就是去掉下劃線

#比如屬性名稱是 createDate, jpa 默認轉換為字段名 create_Date。 有了這個配置之后,就會轉換為同名字段 createDate

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

#顯示 hibernate 執行的sql語句。 這個在上線之后,應該是關掉的,因為大量的 控制臺輸出會嚴重影響系統性能,現在調試用

spring.jpa.show-sql=true

為了方便,我先在數據庫插入了3條用戶信息:

六、驗證

到了驗證的時候了,先啟動后端服務。

接下來,我用postman去請求controller里暴露出來的接口,看看是不是正確的返回數據。

數據正確返回,按照id的倒序。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的mysql 编码分层_【平台开发】— 5.后端:代码分层的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本大尺度做爰呻吟舌吻 | 日本视频黄色 | 香蕉在线影院 | 亚洲精品乱码久久久久久国产主播 | 波多野结衣在线观看一区二区三区 | 三级黄在线观看 | 久久久国产精品成人免费 | 青青草福利视频 | 国产欧美激情在线观看 | 亚洲免费观看在线 | 国产高潮在线 | 欧美人与物videos另类 | 人人草网站 | 亚洲AV无码片久久精品 | 中文字幕av一区二区三区人妻少妇 | 亚洲 欧美 精品 | 在线色导航 | 国产高清一区二区三区 | 国产二区三区视频 | 国产欧美精品一区二区三区app | 国产免费一区二区三区网站免费 | 亚洲一区久久久 | 樱桃视频污污 | 99re在线| 国产av无码专区亚洲av毛网站 | 99热这里是精品 | 欧美日韩视频在线观看免费 | 99久久99久久精品国产片桃花 | 国产精品久久久不卡 | 亚洲乱码av| 欧美激情午夜 | 亚洲区一区 | 一级艳片新婚之夜 | 天天干天| 国产综合99 | 男人看片网站 | 欧美暧暧视频 | 国产无码精品视频 | 中出亚洲 | 热久久亚洲| 欧美一区二区三区成人久久片 | 欧美瑟瑟 | 男人操女人动态图 | 国产999精品久久久久久 | 欧洲三级视频 | 桃色一区二区三区 | 91爱啪啪 | 亚洲精品在线视频免费观看 | 青青伊人av | 伊人77| 日韩亚洲天堂 | 亚洲 欧美 日韩在线 | 校园sm主奴调教1v1罚视频 | 亚洲色p | 欧美又粗又深又猛又爽啪啪九色 | 欧美日韩一区二区三区在线 | 日本少妇做爰全过程毛片 | 就要操av | 在线视频免费观看 | 精品亚洲一区二区三区 | 91国产在线播放 | 好吊色这里只有精品 | 中文字幕系列 | 亚洲高清视频一区二区 | 欧美成人手机在线视频 | 一边摸一边抽搐一进一出视频 | 日本福利一区二区 | 三级亚洲 | 97欧美视频 | 国产在线www | 亚洲AV无码乱码国产精品牛牛 | 天堂av√| 欧美日本一区二区三区 | av国产一区 | 久久国产精品久久国产精品 | 日本午夜在线 | 亚洲男性天堂 | 天堂v在线观看 | 欧美日韩高清不卡 | 日韩美女视频一区 | 一级黄色a视频 | 91免费版在线 | 久久久少妇 | 亚洲 欧美 国产 另类 | 日本不卡专区 | julia一区二区三区中文字幕 | 四虎影视大全 | 东京久久久 | 青青免费视频 | 中文字幕在线一区二区三区 | 一区精品二区国产 | 丰满人妻一区二区三区精品高清 | 91久久久久久久久久久 | 在线xxxxx| 少妇野外性xx老女人野外性xx | 一本一道久久综合 | 中国女人内谢69xxxx免费视频 | 超碰日日夜夜 | 床戏高潮做进去大尺度视频网站 |