github linkedin instagram email
Golang for Beginner Part 1: Print Data From DB MySQL
Jun 7, 2018
2 minutes read

Golang_logo Hari ini kita akan belajar bagaimana menulis data row yang ada di database mysql dengan cara koding dengan bahasa Go. Pertama-tama silahkan unduh dump mysql disini :

goforbeginner.sql

Buatlah database bernama “goforbeginner”, lalu import file goforbeginner.sql tersebut ke db “goforbeginner” tersebut. Jika sudah maka strukturnya akan seperti ini : db_structure

Kita akan fokuskan kepada table products dengan data yang sudah tersedia sebagai berikut : table_products

Mari kita buat dulu structure code nya sebagai berikut :

import (
	"database/sql"
	"log"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
)

//Buat product struct sesuai dengan struktur table products
type Products struct {
	Sku          string    `form:"sku" json:"sku"`
	Product_name string    `form:"product_name" json:"product_name"`
	Stocks       int       `form:"stocks" json:"stocks"`
}

func main(){
// kita akan bermain logic disini

}

Tiba saatnya kita bermain di func main()

  • Initialisasi variable products (type struct => Products) dan arr_products (type []Products).

        func main(){
            var products Products
            var arr_products []Products
    
            ............................
        }
    

    Variable products berguna untuk mapping data yang terbagi menjadi 3 field yakni : SKU, Product Name, dan Stocks. Sedangkan variable arr_products untuk menampung semua row (data bersifat array) yang ada di dalam table products.

  • Mendeklarasikan koneksi dengan database MySQL dengan perantaraan variable db.

         func main(){
                    ...........................
    
           db, err := sql.Open("mysql","root:@tcp(127.0.0.1:3306)/goforbeginner")
           defer db.Close()
    
            if(err != nil) {
                log.Fatal(err)
            }
    
                    ............................
         }
    

    Anda dapat menyesuaikan attribute diatas sesuai dengan access credential yang terdapat pada aplikasi MySQL anda. Variable defer db.Close() adalah untuk menutup koneksi (tcp) ke mysql yang sudah kita open sebelumnya.

  • Query ke table products dengan fungsi db.Query

    func main(){
    
        ...........................
        rows, err := db.Query("Select sku,product_name,stocks from products ORDER BY sku DESC")
            if err!= nil {
                log.Print(err)
            }
         ...........................  
    
          }
    
  • Finally fungsi looping dan print data

        func main(){
    
        ........................... 
    
        count:=0
        	for rows.Next(){
        		if err := rows.Scan(&products.Sku, &products.Product_name, &products.Stocks); err != nil {
        			log.Fatal(err.Error())
    
        		}else{
        			arr_products = append(arr_products, products)
        			fmt.Println(arr_products[count])
        		}
        		count++
        	}
    
    
        }
    
  • Jalankan aplikasi go dengan cara :

        go run PrintDataFromDB.go 
    

    Lalu akan tampil data sebagai berikut :

    {SSI-D01466064-X3-BLA Salyara Plain Casual Big Blouse (XXXL,Black) 52}
    {SSI-D01466013-XX-BLA Salyara Plain Casual Big Blouse (XXL,Black) 77}
    {SSI-D01401071-LL-RED Zeomila Zipper Casual Blouse (L,Red) 76}
    {SSI-D01401064-XL-RED Zeomila Zipper Casual Blouse (XL,Red) 44}
    {SSI-D01401050-MM-RED Zeomila Zipper Casual Blouse (M,Red) 73}
    {SSI-D01326299-LL-NAV Siunfhi Ethnic Trump Blouse (L,Navy) 127}
    {SSI-D01326286-LL-KHA Siunfhi Ethnic Trump Blouse (L,Khaki) 210}
    {SSI-D01326223-MM-KHA Siunfhi Ethnic Trump Blouse (M,Khaki) 209}
    
    .............. dan seterusnya
    

Untuk full code nya silahkan fork disini : Full Code

Sekian untuk saat ini, nantikan lagi episode-episode berikutnya mengenai Go For Beginner, Happy Coding :)


Tags: Golang MySql Data

Back to posts


comments powered by Disqus