golng 使用postgres数据库

hfyarvin · · 2575 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

```go package main import ( "fmt" "log" "time" "github.com/go-xorm/xorm" _ "github.com/lib/pq" ) var engine *xorm.Engine func main() { } func init() { psqlInfo := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", "127.0.0.1", 5432, "postgres", "12345678", "postgres") var err error engine, err = xorm.NewEngine("postgres", psqlInfo) if err != nil { fmt.Println(err) } engine.ShowSQL() //展示sql语句 err = engine.Ping() if err != nil { fmt.Println(err) } } func addAccountTest() { account := new(Account) account.Balance = 100.99 account.Version = 1 account.Name = "arvin" account = account.Create() fmt.Println(account.Id) } type Account struct { Id int64 `json:"id"` Name string `xorm:"name VARCHAR(255)" json:"name"` Balance float64 `xorm:"balance not null DOUBLE(10)" json:"balance"` Version int `xorm:"version default 1 INT(11)" json:"version"` Created time.Time `xorm:"created not null DATETIME" json:"created"` Updated time.Time `xorm:"updated not null DATETIME" json:"updated"` } func (self *Account) TableName() string { return "accounts" } //创建数据表 func (self *Account) CreateTable() error { err := engine.CreateTables(self) if err != nil { log.Fatalln(err) } return err } func (self *Account) Create() *Account { _, err := engine.InsertOne(self) if err != nil { return nil } return self } //通过ID获取 func GetArticleById(id int64) *Account { item := new(Account) // has, err := engine.Where("id = ?", id).Get(item) has, _ := engine.Id(id).Get(item) if !has { return nil } return item } //ALL func SelectAll() []*Account { var accs []*Account engine.SQL(fmt.Sprintf("select * from %s", new(Account).TableName())).Find(&accs) return accs } //利用sql删除 func DeleteUserBySQL(name string) bool { result, err := engine.Exec(fmt.Sprintf("delete from %s where name = '%s'", new(Account).TableName(), name)) if err != nil { log.Println(err) return false } rows, err := result.RowsAffected() if err == nil && rows > 0 { fmt.Println("rows:", rows) return true } return false } func (self *Account) Update() { engine.Id(self.Id).Update(self) } ```

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2575 次点击  
加入收藏 微博
被以下专栏收入,发现更多相似内容
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传