Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "database/sql"
- "fmt"
- "io"
- "net/http"
- _ "github.com/go-sql-driver/mysql"
- )
- var db *sql.DB
- var err error
- func main() {
- db, err = sql.Open("mysql", "awsuser:mypassword@tcp(mydbinstance1.cahupqyjjqa0.us-east-2.rds.amazonaws.com:3306)/test?charset=utf8")
- check(err)
- defer db.Close()
- err = db.Ping()
- check(err)
- http.HandleFunc("/", index)
- http.HandleFunc("/amigos", amigos)
- http.HandleFunc("/create", create)
- http.HandleFunc("/insert", insert)
- http.HandleFunc("/read", read)
- http.HandleFunc("/update", update)
- http.HandleFunc("/delete", del)
- http.HandleFunc("/drop", drop)
- http.Handle("/favicon.ico", http.NotFoundHandler())
- err := http.ListenAndServe(":8080", nil)
- check(err)
- }
- func check(err error) {
- if err != nil {
- fmt.Println(err)
- }
- }
- func index(res http.ResponseWriter, req *http.Request) {
- _, err := io.WriteString(res, "at index")
- check(err)
- }
- func amigos(res http.ResponseWriter, req *http.Request) {
- rows, err := db.Query(`SELECT aName FROM amigos;`)
- check(err)
- defer rows.Close()
- var s, name string
- s = "RETRIEVED RECORDS:\n"
- for rows.Next() {
- err = rows.Scan(&name)
- check(err)
- s += name + "\n"
- }
- fmt.Fprintln(res, s)
- }
- func create(res http.ResponseWriter, req *http.Request) {
- stmt, err := db.Prepare(`CREATE TABLE customer (name VARCHAR(20));`)
- check(err)
- defer stmt.Close()
- r, err := stmt.Exec()
- check(err)
- n, err := r.RowsAffected()
- check(err)
- fmt.Fprintln(res, "CREATED TABLE customer", n)
- }
- func insert(res http.ResponseWriter, req *http.Request) {
- stmt, err := db.Prepare(`INSERT INTO customer VALUES("James");`)
- check(err)
- defer stmt.Close()
- r, err := stmt.Exec()
- check(err)
- n, err := r.RowsAffected()
- check(err)
- fmt.Fprintln(res, "INSERTED RECORD", n)
- }
- func read(res http.ResponseWriter, req *http.Request) {
- rows, err := db.Query(`SELECT * FROM customer;`)
- check(err)
- defer rows.Close()
- var name string
- for rows.Next() {
- err = rows.Scan(&name)
- check(err)
- fmt.Fprintln(res, "RETRIEVED RECORD:", name)
- }
- }
- func update(res http.ResponseWriter, req *http.Request) {
- stmt, err := db.Prepare(`UPDATE customer SET name="Jimmy" WHERE name="James";`)
- check(err)
- defer stmt.Close()
- r, err := stmt.Exec()
- check(err)
- n, err := r.RowsAffected()
- check(err)
- fmt.Fprintln(res, "UPDATED RECORD", n)
- }
- func del(res http.ResponseWriter, req *http.Request) {
- stmt, err := db.Prepare(`DELETE FROM customer WHERE name="Jimmy";`)
- check(err)
- defer stmt.Close()
- r, err := stmt.Exec()
- check(err)
- n, err := r.RowsAffected()
- check(err)
- fmt.Fprintln(res, "DELETED RECORD", n)
- }
- func drop(res http.ResponseWriter, req *http.Request) {
- stmt, err := db.Prepare(`DROP TABLE customer;`)
- check(err)
- defer stmt.Close()
- _, err = stmt.Exec()
- check(err)
- fmt.Fprintln(res, "DROPPED TABLE customer")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement