Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 2.88 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "database/sql"
  5.     "fmt"
  6.     "io"
  7.     "net/http"
  8.  
  9.     _ "github.com/go-sql-driver/mysql"
  10. )
  11.  
  12. var db *sql.DB
  13. var err error
  14.  
  15. func main() {
  16.     db, err = sql.Open("mysql", "awsuser:mypassword@tcp(mydbinstance1.cahupqyjjqa0.us-east-2.rds.amazonaws.com:3306)/test?charset=utf8")
  17.     check(err)
  18.     defer db.Close()
  19.  
  20.     err = db.Ping()
  21.     check(err)
  22.  
  23.     http.HandleFunc("/", index)
  24.     http.HandleFunc("/amigos", amigos)
  25.     http.HandleFunc("/create", create)
  26.     http.HandleFunc("/insert", insert)
  27.     http.HandleFunc("/read", read)
  28.     http.HandleFunc("/update", update)
  29.     http.HandleFunc("/delete", del)
  30.     http.HandleFunc("/drop", drop)
  31.     http.Handle("/favicon.ico", http.NotFoundHandler())
  32.     err := http.ListenAndServe(":8080", nil)
  33.     check(err)
  34. }
  35. func check(err error) {
  36.     if err != nil {
  37.         fmt.Println(err)
  38.     }
  39. }
  40. func index(res http.ResponseWriter, req *http.Request) {
  41.     _, err := io.WriteString(res, "at index")
  42.     check(err)
  43. }
  44. func amigos(res http.ResponseWriter, req *http.Request) {
  45.     rows, err := db.Query(`SELECT aName FROM amigos;`)
  46.     check(err)
  47.     defer rows.Close()
  48.  
  49.     var s, name string
  50.     s = "RETRIEVED RECORDS:\n"
  51.  
  52.     for rows.Next() {
  53.         err = rows.Scan(&name)
  54.         check(err)
  55.         s += name + "\n"
  56.     }
  57.     fmt.Fprintln(res, s)
  58. }
  59. func create(res http.ResponseWriter, req *http.Request) {
  60.     stmt, err := db.Prepare(`CREATE TABLE customer (name VARCHAR(20));`)
  61.     check(err)
  62.     defer stmt.Close()
  63.  
  64.     r, err := stmt.Exec()
  65.     check(err)
  66.  
  67.     n, err := r.RowsAffected()
  68.     check(err)
  69.  
  70.     fmt.Fprintln(res, "CREATED TABLE customer", n)
  71. }
  72. func insert(res http.ResponseWriter, req *http.Request) {
  73.     stmt, err := db.Prepare(`INSERT INTO customer VALUES("James");`)
  74.     check(err)
  75.     defer stmt.Close()
  76.  
  77.     r, err := stmt.Exec()
  78.     check(err)
  79.  
  80.     n, err := r.RowsAffected()
  81.     check(err)
  82.  
  83.     fmt.Fprintln(res, "INSERTED RECORD", n)
  84. }
  85. func read(res http.ResponseWriter, req *http.Request) {
  86.     rows, err := db.Query(`SELECT * FROM customer;`)
  87.     check(err)
  88.     defer rows.Close()
  89.  
  90.     var name string
  91.     for rows.Next() {
  92.         err = rows.Scan(&name)
  93.         check(err)
  94.         fmt.Fprintln(res, "RETRIEVED RECORD:", name)
  95.     }
  96. }
  97. func update(res http.ResponseWriter, req *http.Request) {
  98.     stmt, err := db.Prepare(`UPDATE customer SET name="Jimmy" WHERE name="James";`)
  99.     check(err)
  100.     defer stmt.Close()
  101.  
  102.     r, err := stmt.Exec()
  103.     check(err)
  104.  
  105.     n, err := r.RowsAffected()
  106.     check(err)
  107.  
  108.     fmt.Fprintln(res, "UPDATED RECORD", n)
  109. }
  110. func del(res http.ResponseWriter, req *http.Request) {
  111.     stmt, err := db.Prepare(`DELETE FROM customer WHERE name="Jimmy";`)
  112.     check(err)
  113.     defer stmt.Close()
  114.  
  115.     r, err := stmt.Exec()
  116.     check(err)
  117.  
  118.     n, err := r.RowsAffected()
  119.     check(err)
  120.  
  121.     fmt.Fprintln(res, "DELETED RECORD", n)
  122. }
  123. func drop(res http.ResponseWriter, req *http.Request) {
  124.     stmt, err := db.Prepare(`DROP TABLE customer;`)
  125.     check(err)
  126.     defer stmt.Close()
  127.  
  128.     _, err = stmt.Exec()
  129.     check(err)
  130.  
  131.     fmt.Fprintln(res, "DROPPED TABLE customer")
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement