-
Notifications
You must be signed in to change notification settings - Fork 0
/
DB.go
121 lines (92 loc) · 2.45 KB
/
DB.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package main
import (
"database/sql"
_"github.com/pborman/uuid"
_"github.com/go-sql-driver/mysql"
"time"
_"fmt"
"fmt"
"github.com/pborman/uuid"
)
func dfd() {
db, err := sql.Open("mysql", "admin:1234@tcp(192.168.1.7:3306)/bus_system?parseTime=true")
defer db.Close();
checkErr(err)
insertData(db)
queryData(db)
deleteData(db)
}
func insertData(db *sql.DB) {
stmt, err := db.Prepare("INSERT STAFF SET ID=?, NAME=?, JOB_TYPE=?, ONBOARD_TIME=?, PERSONAL_ID=?, DRIVER_TYPE=?, IS_INTERNSHIP=?, IS_MULTITIME_HIRED=?, FIRST_ONBOARD_TIME=?")
checkErr(err)
uuid := uuid.NewUUID()
name := "testname"
jobType := byte(1)
onboardTime := time.Now()
personalId := "132930198109194713"
driverType := "A3"
isInternship := false
isMultitimeHired := false
firstOnboardTime := time.Now();
res, err := stmt.Exec(uuid, name, jobType, onboardTime, personalId, driverType, isInternship, isMultitimeHired, firstOnboardTime)
checkErr(err)
_, err = res.RowsAffected();
checkErr(err)
//fmt.Printf("affect rows are : %d\n",affect)
}
func queryData(db *sql.DB) {
rows, err := db.Query("SELECT ID, NAME, JOB_TYPE, ONBOARD_TIME, PERSONAL_ID, DRIVER_TYPE, IS_INTERNSHIP, IS_MULTITIME_HIRED, FIRST_ONBOARD_TIME FROM STAFF")
checkErr(err)
for rows.Next() {
var id string
var name string
var jobType []byte
var onboardTime time.Time
var personalId string
var driverType string
var isInternship bool
var isMultitimeHired bool
var firstOnboardTime time.Time
err = rows.Scan(&id, &name, &jobType, &onboardTime, &personalId, &driverType, &isInternship, &isMultitimeHired, &firstOnboardTime)
checkErr(err)
fmt.Println(id)
fmt.Println(name)
fmt.Println(getJobTitle(jobType))
fmt.Println(onboardTime.String())
fmt.Println(personalId)
fmt.Println(driverType)
fmt.Println(isInternship)
fmt.Println(isMultitimeHired)
fmt.Println(firstOnboardTime.String())
}
}
func getJobTitle(jobType []byte) string {
var jobName string
switch jobType[0] {
case byte(1):
jobName = "Driver"
case byte(3):
jobName = "Maintenance Operator"
case byte(5):
jobName = "Technician"
case byte(7):
jobName = "Supporter"
case byte(255):
jobName = "Manager"
}
return jobName
}
func deleteData(db *sql.DB) {
stmt, err := db.Prepare("delete from staff")
checkErr(err)
res, err := stmt.Exec()
checkErr(err)
_, err = res.RowsAffected()
checkErr(err)
//fmt.Printf(affect)
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}