go-zero单体应用入门实战(八)

 一、后台表结构

/*系统用户表*/
CREATE TABLE `sys_user` (
    `id` bigint NOT NULL AUTO_INCREMENT,
    `userid` varchar(255) NOT NULL DEFAULT '' COMMENT '用户id',
    `username` varchar(255) NOT NULL DEFAULT '' COMMENT '用户名称',
    `password` varchar(255) NOT NULL DEFAULT '' COMMENT '用户密码',
    `role` varchar(255) NOT NULL DEFAULT '' COMMENT '角色admin,visitor',
    `avatar` varchar(255) NOT NULL DEFAULT '/favicon.ico' COMMENT '用户图像',
    `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
    `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `userid_unique` (`userid`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;


INSERT INTO `sys_user` (
  `id`,
  `userid`,
  `username`,
  `password`,
  `role`,
  `avatar`,
  `create_time`,
  `update_time`
) 
VALUES
  (
    1,
    '001',
    'admin',
    'admin',
    'admin',
    '/favicon.ico',
    '2023-02-16 09:55:05',
    '2023-02-16 09:56:40'
  ),
  (
    2,
    '002',
    'test',
    'test',
    'visitor',
    '/favicon.ico',
    '2023-02-16 09:55:34',
    '2023-02-16 10:10:24'
  ) ;

二、用户登录功能(/user/login)

2.1.代码编写


pubmodel/pubmodel.go

package pubmodel

import "github.com/zeromicro/go-zero/core/stores/sqlx"

// 泛型实现动态执行sql
// conn:对应数据库连接
// query:对应sql语句
// args:对应sql的参数
func GenericQuerySql[T any](conn sqlx.SqlConn, query string, args ...interface{}) ([]*T, error) {
	//1、获取数据库连接
	//conn := sqlx.NewMysql(dsn)

	//2、初始化切片
	resp := make([]*T, 0, 10)

	//3、执行sql
	err := conn.QueryRows(&resp, query, args...)

	if err != nil {
		return nil, err
	}

	return resp, nil

}

2.2.功能测试

http://127.0.0.1:8888/user/login

go-zero单体应用入门实战(八)_第1张图片


 

你可能感兴趣的:(go-zero,golang,数学建模,开发语言)