Service 层是业务逻辑层,在该层进行复杂的业务逻辑处理,对在多个 Dao 层查到的数据进行组装、处理,然后将结果返回给 Controller
DAO 是对应一张或多张表的,是持久层 API,是针对单张或多张表的增删改查
DAO 层全称数据访问层,用于数据库的增删改查,它表达的是对 SQL 语句的封装,是组成 Service 层的一部分
作用
解耦、提高代码整洁性,提高了代码的可维护性
通讯录管理系统
基本要求:
能实现简单的用户登录注册,对联系人进行添加、删除、修改、查询操作
开始
$ go mod init CMS // 初始化项目 $ go get -u github.com/gin-gonic/gin // 安装 gin $ go get -u gorm.io/gorm // 安装 gorm $ go get -u gorm.io/driver/mysql // 安装 MySQL 驱动 $ go get -u github.com/spf13/viper // 安装 viper
模型定义
定义一个 User (用户)类,包括 ID、用户名、性别、手机号(作为账号)、专业、密码等
type User struct { ID uint`json:"id"` Username string`json:"username"` Sex string`json:"sex"` PhoneNum string`json:"phone_num"` Major string`json:"major"` Password string`json:"-"` }
type Contact struct { ID uint`json:"id"` OwnerID uint`json:"owner_id"` StudentID string`json:"student_id"` Name string`json:"name"` Sex string`json:"sex"` PhoneNum string`json:"phone_num"` Major string`json:"major"` Blacklist bool`json:"blacklist"` }