Skip to content

Commit a6dce67

Browse files
committed
refactor: restructure MySQL pool package with builder pattern and enhanced logging
1 parent 73a7f21 commit a6dce67

File tree

17 files changed

+1263
-614
lines changed

17 files changed

+1263
-614
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
my.cnf
22
init.sql
3-
logs/*
3+
*.log
44
example/*
55
.DS_Store
66
docker-compose.yml

GetData.go

Lines changed: 0 additions & 54 deletions
This file was deleted.

Logger.go

Lines changed: 0 additions & 66 deletions
This file was deleted.

Operator.go

Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package golangMysqlPool
1+
package mysqlPool
22

33
import (
44
"database/sql"
@@ -8,48 +8,40 @@ import (
88

99
func (db *Pool) Query(query string, params ...interface{}) (*sql.Rows, error) {
1010
if db.db == nil {
11-
db.Logger.Action(true, "Database connection is not available")
12-
return nil, fmt.Errorf("database connection is not available")
11+
return nil, db.Logger.Error(nil, "Database connection is not available")
1312
}
1413

1514
startTime := time.Now()
1615
rows, err := db.db.Query(query, params...)
1716
duration := time.Since(startTime)
1817

1918
if duration > 20*time.Millisecond {
20-
db.Logger.Action(false,
21-
fmt.Sprintf("Slow Query: %v", duration),
22-
query,
23-
)
19+
db.Logger.Info(fmt.Sprintf("Slow Query %s", duration))
2420
}
2521

2622
return rows, err
2723
}
2824

2925
func (db *Pool) Exec(query string, params ...interface{}) (sql.Result, error) {
3026
if db.db == nil {
31-
db.Logger.Action(true, "Database connection is not available")
32-
return nil, fmt.Errorf("database connection is not available")
27+
return nil, db.Logger.Error(nil, "Database connection is not available")
3328
}
3429

3530
startTime := time.Now()
3631
result, err := db.db.Exec(query, params...)
3732
duration := time.Since(startTime)
3833

3934
if duration > 20*time.Millisecond {
40-
db.Logger.Action(false,
41-
fmt.Sprintf("Slow Query: %v", duration),
42-
query,
43-
)
35+
db.Logger.Info(fmt.Sprintf("Slow Query %s", duration))
4436
}
4537

4638
return result, err
4739
}
4840

4941
// * private method
50-
func (q *QueryBuilder) query(query string, params ...interface{}) (*sql.Rows, error) {
42+
func (q *builder) query(query string, params ...interface{}) (*sql.Rows, error) {
5143
if q.db == nil {
52-
q.Logger.Action(true, "Database connection is not available")
44+
q.logger.Error(nil, "Database connection is not available")
5345
return nil, fmt.Errorf("database connection is not available")
5446
}
5547

@@ -58,31 +50,24 @@ func (q *QueryBuilder) query(query string, params ...interface{}) (*sql.Rows, er
5850
duration := time.Since(startTime)
5951

6052
if duration > 20*time.Millisecond {
61-
q.Logger.Action(false,
62-
fmt.Sprintf("Slow Query: %v", duration),
63-
query,
64-
)
53+
q.logger.Info(fmt.Sprintf("Slow Query %s", duration))
6554
}
6655

6756
return rows, err
6857
}
6958

7059
// * private method
71-
func (q *QueryBuilder) exec(query string, params ...interface{}) (sql.Result, error) {
60+
func (q *builder) exec(query string, params ...interface{}) (sql.Result, error) {
7261
if q.db == nil {
73-
q.Logger.Action(true, "Database connection is not available")
74-
return nil, fmt.Errorf("database connection is not available")
62+
return nil, q.logger.Error(nil, "Database connection is not available")
7563
}
7664

7765
startTime := time.Now()
7866
result, err := q.db.Exec(query, params...)
7967
duration := time.Since(startTime)
8068

8169
if duration > 20*time.Millisecond {
82-
q.Logger.Action(false,
83-
fmt.Sprintf("Slow Query: %v", duration),
84-
query,
85-
)
70+
q.logger.Info(fmt.Sprintf("Slow Query %s", duration))
8671
}
8772

8873
return result, err

0 commit comments

Comments
 (0)