背景
上一章
Go语言开发基于SQLite数据库实现用户表修改接口(四)
这一章我们实现用户表的删除接口
代码实现
mapper层
type UserMapper interface {
DeleteById(id uint64) error
}
type userMapper struct {
}
func (m *userMapper) DeleteById(id uint64) error {
user := &model.User{}
err := model.DeleteById(user.TableName(), id)
if err != nil {
return err
}
return nil
}
ModelTable实现
func DeleteById(tableName string, id uint64) error {
deleteSQL := fmt.Sprintf("DELETE FROM %s WHERE id = ?", tableName)
_, err := config.Db.Exec(deleteSQL, id)
if err != nil {
return err
}
return nil
}
service层
type UserService interface {
DeleteById(id uint64) error
}
service实现层
type UserServiceImpl struct {
m mapper.UserMapper
}
func (u UserServiceImpl) DeleteById(id uint64) error {
return u.m.DeleteById(id)
}
controller层
type UserController struct {
UserService service.UserService
}
func (u *UserController) DeleteById(rc *req.Ctx) {
id := uint64(req.PathParamInt(rc.GinCtx, "id"))
err := u.UserService.DeleteById(id)
assert.IsNil(err)
}
这里也有个PathParamInt方法 路径传参,传主键ID
func PathParamInt(g *gin.Context, pm string) int {
value, _ := strconv.Atoi(g.Param(pm))
return value
}
接口
测试
源码地址
使用Go语言开发基于SQLite数据库实现用户表相关接口项目示例,可进行扩展,拿来即用
参考
代码风格参考的mayfly-go ,SQLite这块是自己实现的