• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-Nov-2020-

README.mdH A D03-Nov-20202.9 KiB160111

cmd.goH A D03-Nov-20205.8 KiB284215

cmd_utils.goH A D03-Nov-20207.6 KiB321249

db.goH A D03-Nov-202045.2 KiB1,9041,592

db_alias.goH A D03-Nov-202010.6 KiB470362

db_mysql.goH A D03-Nov-20205 KiB185128

db_oracle.goH A D03-Nov-20203.6 KiB13892

db_postgres.goH A D03-Nov-20205.1 KiB190148

db_sqlite.goH A D03-Nov-20204.3 KiB162114

db_tables.goH A D03-Nov-20209.6 KiB483367

db_tidb.goH A D03-Nov-20201.8 KiB6433

db_utils.goH A D03-Nov-20204.2 KiB178143

models.goH A D03-Nov-20202.5 KiB10065

models_boot.goH A D03-Nov-20209.2 KiB348285

models_fields.goH A D03-Nov-202017.5 KiB784496

models_info_f.goH A D03-Nov-202011.5 KiB474408

models_info_m.goH A D03-Nov-20203.5 KiB149114

models_test.goH A D03-Nov-202011.4 KiB506409

models_utils.goH A D03-Nov-20205.8 KiB228190

orm.goH A D03-Nov-202013.8 KiB580403

orm_conds.goH A D03-Nov-20204.1 KiB154106

orm_log.goH A D03-Nov-20205.8 KiB223173

orm_object.goH A D03-Nov-20202.1 KiB8863

orm_querym2m.goH A D03-Nov-20203.7 KiB14195

orm_queryset.goH A D03-Nov-20207.3 KiB301187

orm_raw.goH A D03-Nov-202019 KiB886718

orm_test.goH A D03-Nov-202069.8 KiB2,5202,057

qb.goH A D03-Nov-20202 KiB6343

qb_mysql.goH A D03-Nov-20205 KiB186116

qb_tidb.goH A D03-Nov-20204.9 KiB183115

types.goH A D03-Nov-202017.7 KiB474150

utils.goH A D03-Nov-20206.9 KiB320245

utils_test.goH A D03-Nov-20202 KiB7146

README.md

1# beego orm
2
3[![Build Status](https://drone.io/github.com/astaxie/beego/status.png)](https://drone.io/github.com/astaxie/beego/latest)
4
5A powerful orm framework for go.
6
7It is heavily influenced by Django ORM, SQLAlchemy.
8
9**Support Database:**
10
11* MySQL: [github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql)
12* PostgreSQL: [github.com/lib/pq](https://github.com/lib/pq)
13* Sqlite3: [github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3)
14
15Passed all test, but need more feedback.
16
17**Features:**
18
19* full go type support
20* easy for usage, simple CRUD operation
21* auto join with relation table
22* cross DataBase compatible query
23* Raw SQL query / mapper without orm model
24* full test keep stable and strong
25
26more features please read the docs
27
28**Install:**
29
30	go get github.com/astaxie/beego/orm
31
32## Changelog
33
34* 2013-08-19: support table auto create
35* 2013-08-13: update test for database types
36* 2013-08-13: go type support, such as int8, uint8, byte, rune
37* 2013-08-13: date / datetime timezone support very well
38
39## Quick Start
40
41#### Simple Usage
42
43```go
44package main
45
46import (
47	"fmt"
48	"github.com/astaxie/beego/orm"
49	_ "github.com/go-sql-driver/mysql" // import your used driver
50)
51
52// Model Struct
53type User struct {
54	Id   int    `orm:"auto"`
55	Name string `orm:"size(100)"`
56}
57
58func init() {
59	// register model
60	orm.RegisterModel(new(User))
61
62	// set default database
63	orm.RegisterDataBase("default", "mysql", "root:root@/my_db?charset=utf8", 30)
64
65	// create table
66	orm.RunSyncdb("default", false, true)
67}
68
69func main() {
70	o := orm.NewOrm()
71
72	user := User{Name: "slene"}
73
74	// insert
75	id, err := o.Insert(&user)
76
77	// update
78	user.Name = "astaxie"
79	num, err := o.Update(&user)
80
81	// read one
82	u := User{Id: user.Id}
83	err = o.Read(&u)
84
85	// delete
86	num, err = o.Delete(&u)
87}
88```
89
90#### Next with relation
91
92```go
93type Post struct {
94	Id    int    `orm:"auto"`
95	Title string `orm:"size(100)"`
96	User  *User  `orm:"rel(fk)"`
97}
98
99var posts []*Post
100qs := o.QueryTable("post")
101num, err := qs.Filter("User__Name", "slene").All(&posts)
102```
103
104#### Use Raw sql
105
106If you don't like ORM,use Raw SQL to query / mapping without ORM setting
107
108```go
109var maps []Params
110num, err := o.Raw("SELECT id FROM user WHERE name = ?", "slene").Values(&maps)
111if num > 0 {
112	fmt.Println(maps[0]["id"])
113}
114```
115
116#### Transaction
117
118```go
119o.Begin()
120...
121user := User{Name: "slene"}
122id, err := o.Insert(&user)
123if err == nil {
124	o.Commit()
125} else {
126	o.Rollback()
127}
128
129```
130
131#### Debug Log Queries
132
133In development env, you can simple use
134
135```go
136func main() {
137	orm.Debug = true
138...
139```
140
141enable log queries.
142
143output include all queries, such as exec / prepare / transaction.
144
145like this:
146
147```go
148[ORM] - 2013-08-09 13:18:16 - [Queries/default] - [    db.Exec /     0.4ms] - [INSERT INTO `user` (`name`) VALUES (?)] - `slene`
149...
150```
151
152note: not recommend use this in product env.
153
154## Docs
155
156more details and examples in docs and test
157
158[documents](http://beego.me/docs/mvc/model/overview.md)
159
160