xorm/doc.go

130 lines
3.0 KiB
Go
Raw Normal View History

2013-09-01 02:37:46 +00:00
// Copyright 2013 The XORM Authors. All rights reserved.
// Use of this source code is governed by a BSD
// license that can be found in the LICENSE file.
2013-11-22 01:20:41 +00:00
/*
2013-11-22 02:30:52 +00:00
Package xorm is a simple and powerful ORM for Go.
2013-11-22 01:20:41 +00:00
2013-11-22 08:11:32 +00:00
2013-11-22 05:05:10 +00:00
Installation
go get github.com/lunny/xorm
Create Engine
Firstly, we should new an engine for a database
2013-11-22 01:20:41 +00:00
2013-11-22 02:30:52 +00:00
engine, err := xorm.NewEngine(driverName, dataSourceName)
2013-11-22 01:20:41 +00:00
Method NewEngine's parameters is the same as sql.Open. It depends
2013-11-22 05:05:10 +00:00
drivers' implementation.
Generally, one engine is enough. You can set it as package variable.
Usage
Xorm also support raw sql execution:
1. query sql, the returned results is []map[string][]byte
results, err := engine.Query("select * from user")
2013-11-22 01:20:41 +00:00
2013-11-22 05:05:10 +00:00
2. exec sql, the returned results
affected, err := engine.Exec("update user set .... where ...")
There are 7 major ORM methods and many helpful methods to use to operate database.
1. Insert one or multipe records to database
2013-11-22 05:05:10 +00:00
affected, err := engine.Insert(&struct)
// INSERT INTO struct () values ()
affected, err := engine.Insert(&struct1, &struct2)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values ()
affected, err := engine.Insert(&sliceOfStruct)
// INSERT INTO struct () values (),(),()
affected, err := engine.Insert(&struct1, &sliceOfStruct2)
// INSERT INTO struct1 () values ()
// INSERT INTO struct2 () values (),(),()
2. Query one record from database
2013-11-22 05:05:10 +00:00
has, err := engine.Get(&user)
// SELECT * FROM user LIMIT 1
3. Query multiple records from database
2013-11-22 05:05:10 +00:00
err := engine.Find(...)
// SELECT * FROM user
4. Query multiple records and record by record handle
2013-11-22 05:05:10 +00:00
err := engine.Iterate(...)
// SELECT * FROM user
5. Update one or more records
2013-11-22 05:05:10 +00:00
affected, err := engine.Update(&user)
// UPDATE user SET
6. Delete one or more records
2013-11-22 05:05:10 +00:00
affected, err := engine.Delete(&user)
// DELETE FROM user Where ...
7. Count records
2013-11-22 05:05:10 +00:00
counts, err := engine.Count(&user)
// SELECT count(*) AS total FROM user
Condition
The above 7 methods could use with condition methods.
1. Id, In
engine.Id(1).Get(&user)
// SELECT * FROM user WHERE id = 1
2. Where, And, Or
engine.Where().And().Or().Find()
// SELECT * FROM user WHERE (.. AND ..) OR ...
3. OrderBy, Asc, Desc
engine.Asc().Desc().Find()
// SELECT * FROM user ORDER BY .. ASC, .. DESC
engine.OrderBy().Find()
// SELECT * FROM user ORDER BY ..
4. Limit, Top
engine.Limit().Find()
// SELECT * FROM user LIMIT .. OFFSET ..
engine.Top().Find()
// SELECT * FROM user LIMIT ..
5. Sql
engine.Sql("select * from user").Find()
6. Cols, Omit, Distinct
engine.Cols("col1, col2").Find()
// SELECT col1, col2 FROM user
engine.Omit("col1").Find()
// SELECT col2, col3 FROM user
engine.Distinct("col1").Find()
// SELECT DISTINCT col1 FROM user
7. Join, GroupBy, Having
engine.GroupBy("name").Having("name='xlw'").Find()
//SELECT * FROM user GROUP BY name HAVING name='xlw'
engine.Join("LEFT", "userdetail", "user.id=userdetail.id").Find()
//SELECT * FROM user LEFT JOIN userdetail ON user.id=userdetail.id
2013-11-22 01:20:41 +00:00
*/
2013-09-01 02:37:46 +00:00
package xorm