github.com/giovannyortegon/go@v0.0.0-20220115155912-8890063f5bdd/src/APIRest/db/databaseGO.go (about) 1 package db 2 3 import ( 4 "database/sql" 5 "fmt" 6 7 _ "github.com/go-sql-driver/mysql" 8 ) 9 10 //username:password@tcp(localhost:3306)/database 11 const url = "xxxxx:xxxxxx@tcp(localhost:3306)/goweb_db" 12 13 var db *sql.DB 14 15 func Connect_DB() { 16 17 conn, err := sql.Open("mysql", url) 18 19 if err != nil { 20 panic(err) 21 } 22 23 fmt.Println("Conexion Exitosa") 24 25 db = conn 26 } 27 func Close_DB() { 28 db.Close() 29 } 30 31 func Ping_DB() { 32 33 if err := db.Ping(); err != nil { 34 panic(err) 35 } 36 } 37 38 func ExistsTable(tableName string) bool { 39 sql := fmt.Sprintf("SHOW TABLES LIKE '%s'", tableName) 40 rows, err := db.Query(sql) 41 42 if err != nil { 43 fmt.Println("Error:", err) 44 } 45 return rows.Next() 46 } 47 48 func CreateTable_DB(schema string, name string) { 49 if !ExistsTable(name) { 50 _, err := db.Exec(schema) 51 if err != nil { 52 fmt.Println(err) 53 } 54 } else { 55 fmt.Println("[!] La tabla ya Existe !!") 56 } 57 } 58 59 func TruncateTable(tableName string) { 60 sql := fmt.Sprintf("TRUNCATE %s", tableName) 61 Exec(sql) 62 } 63 64 func Exec(query string, args ...interface{}) (sql.Result, error) { 65 Connect_DB() 66 result, err := db.Exec(query, args...) 67 Close_DB() 68 if err != nil { 69 fmt.Println(err) 70 } 71 return result, err 72 } 73 74 func Query(query string, args ...interface{}) (*sql.Rows, error) { 75 Connect_DB() 76 rows, err := db.Query(query, args...) 77 Close_DB() 78 79 if err != nil { 80 fmt.Println(err) 81 } 82 83 return rows, err 84 }