mirror of
https://gitee.com/johng/gf
synced 2026-06-07 02:12:11 +08:00
README updates, TODO++
This commit is contained in:
61
README.MD
61
README.MD
@ -128,25 +128,7 @@ func main() {
|
||||
s.Run()
|
||||
}
|
||||
```
|
||||
## 域名 & 多域名支持
|
||||
### 自定义域名支持:
|
||||
```go
|
||||
package main
|
||||
|
||||
import "gitee.com/johng/gf/g/net/ghttp"
|
||||
|
||||
func main() {
|
||||
s := ghttp.GetServer()
|
||||
s.Domain("127.0.0.1").BindHandler("/", func(r *ghttp.Request) {
|
||||
r.Response.Write("127.0.0.1")
|
||||
})
|
||||
s.Domain("localhost").BindHandler("/", func(r *ghttp.Request) {
|
||||
r.Response.Write("localhost")
|
||||
})
|
||||
s.Run()
|
||||
}
|
||||
```
|
||||
### 多域名绑定支持:
|
||||
## 多域名支持
|
||||
```go
|
||||
package main
|
||||
|
||||
@ -160,6 +142,23 @@ func main() {
|
||||
s.Run()
|
||||
}
|
||||
```
|
||||
## 多端口支持
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"gitee.com/johng/gf/g/net/ghttp"
|
||||
)
|
||||
|
||||
func main() {
|
||||
s := ghttp.GetServer()
|
||||
s.BindHandler("/", func(r *ghttp.Request){
|
||||
r.Response.Writeln("go frame!")
|
||||
})
|
||||
s.SetPort(8080, 8081, 8082)
|
||||
s.Run()
|
||||
}
|
||||
```
|
||||
|
||||
## 服务注册
|
||||
```go
|
||||
@ -198,9 +197,6 @@ import "gitee.com/johng/gf/g/net/ghttp"
|
||||
|
||||
func main() {
|
||||
s := ghttp.GetServer()
|
||||
s.BindHandler("/:name", func(r *ghttp.Request){
|
||||
r.Response.Write(r.Get("name"))
|
||||
})
|
||||
s.BindHandler("/:name/:action", func(r *ghttp.Request){
|
||||
r.Response.Write(r.Get("name"))
|
||||
r.Response.Write(r.Get("action"))
|
||||
@ -268,24 +264,31 @@ fmt.Println(gvalid.Check("http://gfjohngcn", rule, msgs))
|
||||
#### ORM单例对象
|
||||
```go
|
||||
// 获取默认配置的数据库对象(配置名称为"default")
|
||||
db, err := gdb.Instance()
|
||||
db, err := gdb.New()
|
||||
// 获取配置分组名称为"user-center"的数据库对象
|
||||
db, err := gdb.Instance("user-center")
|
||||
db, err := gdb.New("user-center")
|
||||
```
|
||||
#### 单表/联表查询
|
||||
```go
|
||||
// 查询多条记录并使用Limit分页
|
||||
r, err := db.Table("user").Where("u.uid > ?", 1).Limit(0, 10).Select()
|
||||
|
||||
// 查询符合条件的单条记录(第一条)
|
||||
r, err := db.Table("user u").LeftJoin("user_detail ud", "u.uid=ud.uid").Fields("u.*,ud.site").Where("u.uid=?", 1).One()
|
||||
|
||||
// 查询指定字段值
|
||||
r, err := db.Table("user u").RightJoin("user_detail ud", "u.uid=ud.uid").Fields("ud.site").Where("u.uid=?", 1).Value()
|
||||
|
||||
// 分组及排序
|
||||
r, err := db.Table("user u").InnerJoin("user_detail ud", "u.uid=ud.uid").Fields("u.*,ud.city").GroupBy("city").OrderBy("register_time asc").Select()
|
||||
// 不使用john的联表查询
|
||||
r, err := db.Table("user u,user_detail ud").Where("u.uid=ud.uid").Fields("u.*,ud.city").All()
|
||||
// 不使用Fields方法指定查询字段时,默认查询为"*"
|
||||
r, err := db.Table("user").Where("u.uid=1",).One()
|
||||
```
|
||||
|
||||
#### like查询
|
||||
```go
|
||||
r, err := db.Table("user").Where("name like ?", "%john%").Select()
|
||||
```
|
||||
|
||||
#### 链式更新/删除
|
||||
```go
|
||||
// 更新
|
||||
@ -293,6 +296,10 @@ r, err := db.Table("user").Data(gdb.Map{"name" : "john2"}).Where("name=?", "john
|
||||
r, err := db.Table("user").Data("name='john3'").Where("name=?", "john2").Update()
|
||||
// 删除
|
||||
r, err := db.Table("user").Where("uid=?", 10).Delete()
|
||||
// Data数值方法的参数形式比较灵活
|
||||
r, err := db.Table("user").Data(`name="john"`).Update()
|
||||
r, err := db.Table("user").Data("name", "john").Update()
|
||||
r, err := db.Table("user").Data(g.Map{"name" : "john"}).Update()
|
||||
```
|
||||
#### 链式写入/保存
|
||||
```go
|
||||
|
||||
12
TODO
12
TODO
@ -2,13 +2,11 @@ ON THE WAY:
|
||||
1. 增加对于数据表Model的封装;
|
||||
2. ghttp.Server平滑重启方案;
|
||||
3. 更多数据库的ORM功能支持;
|
||||
4. 验证码包支持;
|
||||
5. FAQ
|
||||
6. gdb对象管理增加二级连接池特性;
|
||||
7. 完善gconv类型转换功能,增加time.Time/time.Duration类型转换,并增加benchmark测试脚本
|
||||
|
||||
|
||||
|
||||
4. 考虑gdb对象管理增加二级连接池特性,提高New&Close性能;
|
||||
5. 增加图形验证码支持,至少支持数字和英文字母;
|
||||
6. 完善gconv类型转换功能,增加time.Time/time.Duration类型转换,并增加benchmark测试脚本
|
||||
7. 增加热编译工具,提高开发环境的开发/测试效率(媲美PHP开发效率);
|
||||
8. 增加可选择性的orm tag特性,用以数据表记录与struct对象转换的键名属性映射;
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user