Files
gorose-pro/builder_interface.go
tuuz d1e6914752 1.修复Oracle无法使用的故障,使用Go-Ora替代OCI8
2.修复原版Gorose打标错误导致Oracle完全无法输出的BUG
2023-10-27 12:30:00 +08:00

40 lines
878 B
Go

package gorose
import (
"fmt"
"regexp"
)
// IBuilder ...
type IBuilder interface {
IFieldQuotes
BuildQuery(orm IOrm) (sqlStr string, args []interface{}, err error)
BuildExecute(orm IOrm, operType string) (sqlStr string, args []interface{}, err error)
Clone() IBuilder
//GetIOrm() IOrm
}
// IFieldQuotes 给系统关键词冲突的字段加引号,如: mysql是反引号, pg是双引号
type IFieldQuotes interface {
AddFieldQuotes(field string) string
}
type FieldQuotesDefault struct {
}
func (FieldQuotesDefault) AddFieldQuotes(field string) string {
reg := regexp.MustCompile(`^\w+$`)
if reg.MatchString(field) {
return fmt.Sprintf("`%s`", field)
}
return field
}
func (FieldQuotesDefault) AddFieldQuotesOracle(field string) string {
reg := regexp.MustCompile(`^\w+$`)
if reg.MatchString(field) {
return fmt.Sprintf("\"%s\"", field)
}
return field
}