Golang如何将SQL查询保留在我的代码之外?

时间:2016-05-31 10:30:20

标签: sql go

我一直在努力决定组织SQL查询和代码的最佳方法。

现在我的包中有一个models/文件夹,其中包含我的所有表,每个表都在自己的.go文件中,其中包含与数据库表匹配的结构。

我一直把我的代码弄得乱七八糟,因为扔掉了大量的sqlQueries,特别是对于事务,什么不是。

我如何构建我的代码,而不会乱丢SQL查询。

(我不想用ORM来完成这个)

1 个答案:

答案 0 :(得分:1)

您可以实现类似cookie的内容。

来自EAA目录的示例:

ttl

Go:

模型/ person.go

type Person struct {
  Lastname   string
  Firstname  string
  Dependents int
}

映射器/ person.go

package mapper

import m "whatever/model"

type PersonMap struct { }

func (m *PersonMap) Insert(p *m.Person) error {
  // SQL query
  return nil
}

func (m *PersonMap) Update(p *m.Person) error {
  // SQL query
  return nil
}

func (m *PersonMap) Delete(p *m.Person) error {
  // SQL query
  return nil
}

但是,该解决方案只是解决方案的一部分。关于数据库事务,我认为你应该从另一个"层"。

管理它们