🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 链接示例 ```go // 第一种, 单一数据库链接 var config = &gorose.Config{Driver:"sqlite3",Dsn:"./db.sqlite",Prefix:"pre_",SetMaxOpenConns:200,SetMaxIdleConns:10} engin,err := gorose.Open(config) // 第二种, 读写分离集群 var config1 = gorose.Config{Dsn: "./db.sqlite"} var config2 = gorose.Config{Dsn: "./db2.sqlite"} var config3 = gorose.Config{Dsn: "./db3.sqlite"} var config4 = gorose.Config{Dsn: "./db4.sqlite"} var configCluster = &gorose.ConfigCluster{ Master: []gorose.Config{config3, config4}, Slave: []gorose.Config{config1, config2}, Driver: "sqlite3", } engin,err := gorose.Open(configCluster) ``` 配置支持2种方式, 原生dsn, 单一数据库, 数据库读写分离集群 > mysql连接示例: `engin, err = gorose.Open(&gorose.Config{Driver: "mysql", Dsn: "root:root@tcp(localhost:3306)/test?charset=utf8&parseTime=true"})` ## 配置类型详解 ```go // 单一数据库配置 type Config struct { Driver string // 驱动: mysql/sqlite3/oracle/mssql/postgres/clickhouse, 如果集群配置了驱动, 这里可以省略 Dsn string // 数据库链接 SetMaxOpenConns int // (连接池)最大打开的连接数,默认值为0表示不限制 SetMaxIdleConns int // (连接池)闲置的连接数, 默认0 Prefix string // 表前缀, 如果集群配置了前缀, 这里可以省略 } // 数据库读写分离集群配置 type ConfigCluster struct { Master []Config // 主数据库集群 Slave []Config // 从数据库集群 Driver string // 驱动 Prefix string // 前缀 } ``` 如果集群配置了`driver`, 则单一配置不需要添加driver, 默认读取集群配置的driver 如果集群配置了`Prefix`, 则单一配置不需要添加Prefix, 默认读取集群配置的Prefix `SetMaxOpenConns`: 连接池最大连接数,不设置, 默认无限 `SetMaxIdleConns`: 连接池最大空闲连接数,不设置, 默认无 ## 如何使用json,toml,ini等配置 json示例 ```go // json配置字符串 var jsonstr = `{"driver":"sqlite3","dsn":"/tmp/db.sqlite3"}` // 解析json的struct type jsonObj struct { Driver string `json:"driver"` Dsn string `json:"dsn"` } var js jsonObj // 解析json到js对象 json.Unmarshal([]byte(jsonstr), &js) // 组合config var config = gorose.Config{Driver:js.Driver, Dsn:js.Dsn} // 初始化链接数据库 engin,err := gorose.Oper(config) // ping测试数据库连通性 fmt.Println(engin.Ping()) ``` toml, ini等配置, 皆类似