日韩性视频-久久久蜜桃-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.后端:代码分层的全部內容,希望文章能夠幫你解決所遇到的問題。

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