| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package main
-
- import (
- "database/sql"
- "fmt"
- "log"
-
- "git.x2erp.com/qdy/go-db/factory"
- )
-
- func main() {
- // 创建数据库工厂
- dbFactory, err := factory.NewDBFactory()
- if err != nil {
- log.Fatalf("Failed to create DB factory: %v", err)
- }
-
- // 显示可用的数据库驱动
- drivers := dbFactory.GetAvailableDrivers()
- fmt.Printf("Available database drivers: %v\n", drivers)
-
- // 显示当前使用的数据库配置
- config := dbFactory.GetConfig()
- fmt.Printf("Using database type: %s\n", config.Database.Type)
- fmt.Printf("Database host: %s:%d\n", config.Database.Host, config.Database.Port) // 修正这里
- fmt.Printf("Database name: %s\n", config.Database.Database) // 修正这里
-
- // 创建数据库连接
- db, err := dbFactory.CreateDB()
- if err != nil {
- log.Fatalf("Failed to create database connection: %v", err)
- }
- defer db.Close()
-
- fmt.Println("Successfully connected to database!")
-
- // 测试连接
- if err := testConnection(db, config.Database.Type); err != nil { // 修正这里
- log.Printf("Query test failed: %v", err)
- } else {
- fmt.Println("Database connection test passed!")
- }
- }
-
- func testConnection(db *sql.DB, dbType string) error {
- var query string
- switch dbType {
- case "mysql", "postgres", "sqlserver":
- query = "SELECT 1"
- case "oracle":
- query = "SELECT 1 FROM DUAL"
- default:
- query = "SELECT 1"
- }
-
- var result int
- err := db.QueryRow(query).Scan(&result)
- if err != nil {
- return fmt.Errorf("test query failed: %v", err)
- }
-
- if result != 1 {
- return fmt.Errorf("unexpected test result: %d", result)
- }
-
- return nil
- }
|