README updates, TODO++

This commit is contained in:
John
2018-05-04 21:13:51 +08:00
parent 138d52940c
commit c4c246610a
2 changed files with 39 additions and 34 deletions

View File

@ -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
View File

@ -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对象转换的键名属性映射