mirror of
https://gitee.com/johng/gf
synced 2026-07-08 14:39:50 +08:00
improve model feature
This commit is contained in:
4
.example/frame/main/model/config.toml
Normal file
4
.example/frame/main/model/config.toml
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
# MySQL数据库配置
|
||||
[database]
|
||||
link = "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
|
||||
15
.example/frame/main/model/model1.go
Normal file
15
.example/frame/main/model/model1.go
Normal file
@ -0,0 +1,15 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/gogf/gf/.example/frame/mvc/model/test"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
)
|
||||
|
||||
func main() {
|
||||
g.DB().SetDebug(true)
|
||||
user, err := test.ModelUser().One()
|
||||
g.Dump(err)
|
||||
g.Dump(user)
|
||||
user.Password = "1"
|
||||
g.Dump(user.Update())
|
||||
}
|
||||
10
.example/frame/mvc/model/test/init.go
Normal file
10
.example/frame/mvc/model/test/init.go
Normal file
@ -0,0 +1,10 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"github.com/gogf/gf/database/gdb"
|
||||
"github.com/gogf/gf/frame/g"
|
||||
)
|
||||
|
||||
func DB() gdb.DB {
|
||||
return g.DB()
|
||||
}
|
||||
81
.example/frame/mvc/model/test/user.go
Normal file
81
.example/frame/mvc/model/test/user.go
Normal file
@ -0,0 +1,81 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
|
||||
"github.com/gogf/gf/debug/gdebug"
|
||||
"github.com/gogf/gf/frame/gins"
|
||||
|
||||
"github.com/gogf/gf/database/gdb"
|
||||
"github.com/gogf/gf/os/gtime"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
Id int `orm:"id,primary" json:"id"`
|
||||
Passport string `orm:"passport" json:"passport"`
|
||||
Password string `orm:"password" json:"password"`
|
||||
NickName string `orm:"nickname" json:"nick_name"`
|
||||
CreateTime *gtime.Time `orm:"create_time" json:"create_time"`
|
||||
}
|
||||
|
||||
type UserModel struct {
|
||||
*gdb.Model
|
||||
TableName string
|
||||
}
|
||||
|
||||
var (
|
||||
UserTableName = "user"
|
||||
gUserModelCacheKey = gdebug.CallerFilePath()
|
||||
)
|
||||
|
||||
func ModelUser() *UserModel {
|
||||
return gins.GetOrSetFunc(gUserModelCacheKey, func() interface{} {
|
||||
return &UserModel{
|
||||
DB().Table(UserTableName).Safe(),
|
||||
UserTableName,
|
||||
}
|
||||
}).(*UserModel)
|
||||
}
|
||||
|
||||
func (r *User) Insert() (result sql.Result, err error) {
|
||||
return ModelUser().Data(r).Insert()
|
||||
}
|
||||
|
||||
func (r *User) Replace() (result sql.Result, err error) {
|
||||
return ModelUser().Data(r).Replace()
|
||||
}
|
||||
|
||||
func (r *User) Save() (result sql.Result, err error) {
|
||||
return ModelUser().Data(r).Save()
|
||||
}
|
||||
|
||||
func (r *User) Update() (result sql.Result, err error) {
|
||||
return ModelUser().Data(r).Where(gdb.GetWhereConditionOfStruct(r)).Update()
|
||||
}
|
||||
|
||||
func (r *User) Delete() (result sql.Result, err error) {
|
||||
return ModelUser().Where(gdb.GetWhereConditionOfStruct(r)).Delete()
|
||||
}
|
||||
|
||||
func (m *UserModel) Select() ([]*User, error) {
|
||||
return m.All()
|
||||
}
|
||||
|
||||
func (m *UserModel) All() ([]*User, error) {
|
||||
array := ([]*User)(nil)
|
||||
if err := m.Scan(&array); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return array, nil
|
||||
}
|
||||
|
||||
func (m *UserModel) One() (*User, error) {
|
||||
list, err := m.All()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(list) > 0 {
|
||||
return list[0], nil
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
17
.example/net/ghttp/server/admin/admin.go
Normal file
17
.example/net/ghttp/server/admin/admin.go
Normal file
@ -0,0 +1,17 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/net/ghttp"
|
||||
)
|
||||
|
||||
func main() {
|
||||
s := g.Server()
|
||||
s.SetNameToUriType(ghttp.NAME_TO_URI_TYPE_FULLNAME)
|
||||
s.EnableAdmin()
|
||||
s.BindHandler("/", func(r *ghttp.Request) {
|
||||
r.Response.Write("hello world")
|
||||
})
|
||||
s.SetPort(8199)
|
||||
s.Run()
|
||||
}
|
||||
@ -13,12 +13,12 @@ func main() {
|
||||
//w := gtimer.New(10, 10*time.Millisecond)
|
||||
fmt.Println("start:", time.Now())
|
||||
for i := 0; i < 1000000; i++ {
|
||||
gtimer.AddTimes(time.Second, 2, func() {
|
||||
gtimer.AddTimes(time.Second, 1, func() {
|
||||
v.Add(1)
|
||||
})
|
||||
}
|
||||
fmt.Println("end :", time.Now())
|
||||
time.Sleep(5000 * time.Millisecond)
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
fmt.Println(v.Val(), time.Now())
|
||||
|
||||
//gtimer.AddSingleton(time.Second, func() {
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/gogf/gf/frame/g"
|
||||
"github.com/gogf/gf/os/glog"
|
||||
)
|
||||
|
||||
func main() {
|
||||
glog.Error("error")
|
||||
v := g.NewVar(1)
|
||||
glog.Error(v.String())
|
||||
glog.Errorfln("error")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user