b43f968b6c
- 在应用程序中新增对达梦数据库(DM)的配置和连接支持 - 实现 SetDmDB 函数以配置达梦数据库连接 - 更新数据库操作逻辑,支持达梦特有的 SQL 语法和功能 - 在相关文件中添加达梦数据库的处理逻辑,包括表创建、数据插入和查询 - 更新 go.mod 和 go.sum 文件以引入达梦数据库驱动 - 增强文档,详细说明达梦数据库的配置和使用方法
76 lines
1.5 KiB
Go
76 lines
1.5 KiB
Go
/*
|
|
* Copyright (c) 2000-2018, 达梦数据库有限公司.
|
|
* All rights reserved.
|
|
*/
|
|
|
|
package util
|
|
|
|
import (
|
|
"go/build"
|
|
"os"
|
|
"runtime"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
PathSeparator = string(os.PathSeparator)
|
|
PathListSeparator = string(os.PathListSeparator)
|
|
)
|
|
|
|
var (
|
|
goRoot = build.Default.GOROOT
|
|
goPath = build.Default.GOPATH //获取实际编译时的GOPATH值
|
|
)
|
|
|
|
type fileUtil struct {
|
|
}
|
|
|
|
var FileUtil = &fileUtil{}
|
|
|
|
func (fileUtil *fileUtil) Exists(path string) bool {
|
|
if _, err := os.Stat(path); !os.IsNotExist(err) {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (fileUtil *fileUtil) Search(relativePath string) (path string) {
|
|
if strings.Contains(runtime.GOOS, "windows") {
|
|
relativePath = strings.ReplaceAll(relativePath, "/", "\\")
|
|
}
|
|
|
|
if fileUtil.Exists(goPath) {
|
|
for _, s := range strings.Split(goPath, PathListSeparator) {
|
|
path = s + PathSeparator + "src" + PathSeparator + relativePath
|
|
if fileUtil.Exists(path) {
|
|
return path
|
|
}
|
|
}
|
|
}
|
|
|
|
if fileUtil.Exists(goPath) {
|
|
for _, s := range strings.Split(goPath, PathListSeparator) {
|
|
path = s + PathSeparator + "pkg" + PathSeparator + relativePath
|
|
if fileUtil.Exists(path) {
|
|
return path
|
|
}
|
|
}
|
|
}
|
|
|
|
//if workDir, _ := os.Getwd(); fileUtil.Exists(workDir) {
|
|
// path = workDir + PathSeparator + "src" + PathSeparator + relativePath
|
|
// if fileUtil.Exists(path) {
|
|
// return path
|
|
// }
|
|
//}
|
|
|
|
//if fileUtil.Exists(goRoot) {
|
|
// path = goRoot + PathSeparator + "src" + PathSeparator + relativePath
|
|
// if fileUtil.Exists(path) {
|
|
// return path
|
|
// }
|
|
//}
|
|
|
|
return ""
|
|
}
|