在MVC中我的SQL代码应该放在哪里

在MVC中我的SQL代码应该放在哪里,sql,model-view-controller,go,Sql,Model View Controller,Go,我刚刚开始学习MVC设计模式,我想知道我的SQL代码应该去哪里 例如,假设我有一个寄存器表单结构,如下所示 type Form struct { Username string Password string } func (f *Form) registerUser() { // SQL code goes here } 我假设表单结构是模型的一部分,因此我有一些与表单相关的函数,在用户提交表单后,数据被放入数据库,因此我的函数看起来像这样 type Form struct {

我刚刚开始学习MVC设计模式,我想知道我的SQL代码应该去哪里

例如,假设我有一个寄存器表单结构,如下所示

type Form struct {
 Username string
 Password string
}
func (f *Form) registerUser() {
   // SQL code goes here
}
我假设表单结构是模型的一部分,因此我有一些与表单相关的函数,在用户提交表单后,数据被放入数据库,因此我的函数看起来像这样

type Form struct {
 Username string
 Password string
}
func (f *Form) registerUser() {
   // SQL code goes here
}

这是最好的方法吗?我一直在搜索利用MVC模式的开源Golang web应用程序,但我还没有找到一个我完全理解的

在模型视图控制器模式中

模型是实体,所有类都代表真实世界的对象

视图是用户可以看到并与之交互的表单和所有图形

控制器是用于控制器类的,是程序的所有逻辑,对于sql代码,正如您所说,您可以实现一个,并且所有sql代码都在控制器包中,数据库类在实体包中(我将其保留在控制器类中)

我假设表单结构是模型的一部分,因此我有一些与表单相关的函数,在用户提交表单后,数据被放入数据库,因此我的函数看起来像这样

type Form struct {
 Username string
 Password string
}
func (f *Form) registerUser() {
   // SQL code goes here
}
MVC应用程序体系结构中模型的另一个用途是存储可重用代码。所以,是的,您可以将表单存储在模型中(例如,如果您在多个视图中重用它),但这不如将表单存储在视图中并在以后重用它更有意义

执行回溯类似于

  • 控制器处理请求-我个人在这里执行业务逻辑,并且(如果必要)调用
  • 模型,处理所有数据检索从数据库管理系统,验证等,并返回处理后的数据控制器和
  • 然后,该视图将显示相应的参数(用户数据、模板、验证器结果等)
  • 用户填写表单并将输入提交给控制器,然后
  • 转到1。点
  • 不,DBMS只是模型的另一个视图。“数据库就是模型”的思想是由Hibernate和Rails的ActiveRecord等数据库包装器推广的。