golng 使用postgres資料庫

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。```gopackage mainimport ("fmt""log""time""github.com/go-xorm/xorm"_ "github.com/lib/pq")var engine *xorm.Enginefunc 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 errorengine, 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.99account.Version = 1account.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}//ALLfunc SelectAll() []*Account {var accs []*Accountengine.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)}```457 次點擊  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.