@@ -15,57 +15,98 @@ type DummyTable struct {
15
15
Email string `json:"email"`
16
16
}
17
17
18
- func connectHandler () {
18
+ func printAllRowsInTable (conn * pgx.Conn ) {
19
+ rows , err := conn .Query (context .Background (), "select * from dummy_table" )
19
20
20
- // env := os.Environ()
21
+ if err != nil {
22
+ fmt .Fprintf (os .Stderr , "There is a error while querying \n %v" , err )
23
+ os .Exit (1 )
24
+ }
21
25
22
- // for _, val := range env {
23
- // fmt.Println(val)
24
- // }
25
- dbUrl := fmt .Sprintf (
26
- "host=%s port=%d user=%s password=%s dbname=%s sslmode=disable" , "localhost" , 5432 , os .Getenv ("PG_USERNAME_V1" ), os .Getenv ("PG_PASS_V1" ), "postgres" ,
27
- )
26
+ defer rows .Close ()
28
27
29
- os . Setenv ( "DATABASE_CONFIG" , dbUrl )
28
+ datas , _ := pgx . CollectRows ( rows , pgx . RowToAddrOfStructByName [ DummyTable ] )
30
29
31
- connection , err := pgx .Connect (context .Background (), os .Getenv ("DATABASE_CONFIG" ))
30
+ for _ , data := range datas {
31
+ fmt .Println ("data is" , data )
32
+ }
33
+ }
34
+
35
+ func printRowAfterInserting (conn * pgx.Conn ) {
36
+ const QUERY = "INSERT INTO dummy_table(id, name, age, email) values($1,$2,$3,$4);"
37
+
38
+ row ,
err := conn .
Exec (
context .
Background (),
QUERY ,
15 ,
"Aniket" ,
27 ,
"[email protected] " )
32
39
33
40
if err != nil {
34
- fmt .Fprintf (os .Stderr , "Unable to connect to database: %v \n " , err )
41
+ fmt .Fprintf (os .Stderr , "Error while inserting data into the table \n %v " , err )
35
42
os .Exit (1 )
36
43
}
37
44
38
- defer connection .Close (context .Background ())
45
+ fmt .Println (row .RowsAffected ())
46
+ fmt .Println ("Row after inserting" )
47
+ printRowInTable (conn , 14 )
48
+ }
39
49
40
- // rows, err := connection.Query(context.Background(), "select * from dummy_table;")
50
+ func printRowAfterUpdating (conn * pgx.Conn ) {
51
+ const QUERY = "UPDATE dummy_table set name=$1 WHERE id=$2;"
41
52
42
- // err = pgxscan.Select (context.Background(), connection, &rows, "select * from dummy_table;" )
53
+ row , err := conn . Exec (context .Background (), QUERY , "Ankush" , 15 )
43
54
44
- // if err != nil {
45
- // fmt.Fprintf(os.Stderr, "The error is \n %v", err)
46
- // os.Exit(1)
47
- // }
55
+ if err != nil {
56
+ fmt .Fprintf (os .Stderr , "Error while update data on the table \n %v" , err )
57
+ os .Exit (1 )
58
+ }
48
59
49
- rows , err := connection .Query (context .Background (), "select * from dummy_table" )
60
+ fmt .Println ("Rows affected" , row .RowsAffected ())
61
+ fmt .Println ("Row after updating" )
62
+ printRowInTable (conn , 14 )
63
+ }
64
+
65
+ func printRowInTable (conn * pgx.Conn , id int ) {
66
+
67
+ var dummy DummyTable
68
+ err := conn .QueryRow (context .Background (), "SELECT * from dummy_table where id=$1" , id ).Scan (& dummy .Id , & dummy .Name , & dummy .Age , & dummy .Email )
50
69
51
70
if err != nil {
52
- fmt .Fprintf (os .Stderr , "There is a error while querying \n %v" , err )
71
+ fmt .Fprintf (os .Stderr , "Error occoured while scanning row \n %v" , err )
53
72
os .Exit (1 )
54
73
}
74
+ fmt .Println ("Dummy table row is" , dummy )
75
+ }
55
76
56
- defer rows . Close ()
77
+ func getDBConnectionHandler () * pgx. Conn {
57
78
58
- datas , _ := pgx .CollectRows (rows , pgx .RowToAddrOfStructByName [DummyTable ])
79
+ dbUrl := fmt .Sprintf (
80
+ "host=%s port=%d user=%s password=%s dbname=%s sslmode=disable" , "localhost" , 5432 , os .Getenv ("PG_USERNAME_V1" ), os .Getenv ("PG_PASS_V1" ), "postgres" ,
81
+ )
59
82
60
- for _ , data := range datas {
61
- fmt .Println ("data is" , data .Name )
83
+ os .Setenv ("DATABASE_CONFIG" , dbUrl )
84
+
85
+ connection , err := pgx .Connect (context .Background (), os .Getenv ("DATABASE_CONFIG" ))
86
+
87
+ if err != nil {
88
+ fmt .Fprintf (os .Stderr , "Unable to connect to database: %v\n " , err )
89
+ os .Exit (1 )
62
90
}
91
+
92
+ return connection
63
93
}
64
94
65
95
func main () {
66
96
67
- connectHandler ()
97
+ conn := getDBConnectionHandler ()
98
+ defer conn .Close (context .Background ())
99
+
100
+ fmt .Println ("Getting all rows in dummy table:" )
101
+ printAllRowsInTable (conn )
102
+
103
+ fmt .Println ("\n Getting one row in dummy table:" )
104
+ printRowInTable (conn , 8 )
105
+
106
+ fmt .Println (("\n Inserting one row in dummy table" ))
107
+ printRowAfterInserting (conn )
68
108
69
- fmt .Println ("Here is a go file" )
109
+ fmt .Println (("\n Updating one row in dummy table" ))
110
+ printRowAfterUpdating (conn )
70
111
71
112
}
0 commit comments