#backupwiki

1 catatan | 1 view
Wed, 25 Feb 2015 2:45 pm
#backupwiki
Sabtu, 21 Februari 03:38 dini hari

Sampai saat ini sudah berhasil instalasi GO di ubuntu droplet, sekalian juga menjadikannya serice via forever.

Yang masih jadi pertanyaan, apa bedanya go run dan go build ?


23/02/2015

Ternyata BUILD digunakan untuk mengcompile menjadi file executable,... WOW. Ane bisa bikin .exe, sedangkan RUN hanya menjalankan script tanpa compile, beda-beda tipis mawon ...


01:35 PM

WOW, hundred of koleksi aplikasi berbasis GO. Check this amazing link https://github.com/golang/go/wiki/Projects#web-applications


02:05 PM

Mau nyoba project go_spider ... lumayan ribet juga scriptnya


25/02/2015

Hari ini sudah bisa konek ke mysql.

Driver = https://github.com/go-sql-driver/mysql#installation
Manual = https://github.com/go-sql-driver/mysql/wiki/Examples

Step by stepnya mudah, tinggal jalankan :
1. $ go get github.com/go-sql-driver/mysql
   Command diatas sangat bergantung pada variable GOPATH system operasi, di windows GOPATH bisa diset dengan perintah
   set GOPATH=D:\PROJECTS\GO-APP\
   Sebelum menjalankan command ini GOPATH harus diset dahulu, ato kalo nggak bakal error. Untuk ngecek sudah diset ato belum,
   di windows bisa dengan command 'set'
   Perintah diatas akan meng-create folder: 
   ** D:\PROJECTS\GO-APP\pkg\windows_amd64\github.com\go-sql-driver
   ** D:\PROJECTS\GO-APP\src\github.com\go-sql-driver\mysql
   disitu keliatan ada tambahan satu folder pkg baru dan menambah juga di folder src
   Sampai step ini driver mysql sudah ready untuk diembed
2. Dan ini source lengkapnya yang sudah jalan di local :

	package main

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

	func queryBuilder() string {
		waktu := fmt.Sprint(time.Now())
		s := []string{"INSERT ", "INTO ", " squarenum", " VALUES(", "'", waktu ,"',","'olala'",")"}
		return strings.Join(s, "")
	}

	func main() {
	    db, err := sql.Open("mysql", "root:GunungMerapi2012@/himbauan")
		if err != nil {
		    panic(err.Error()) // Just for example purpose. You should use proper error handling instead of panic
		}
		// defer db.Close()

		// Open doesn't open a connection. Validate DSN data:
		err = db.Ping()
		if err != nil {
		    panic(err.Error()) // proper error handling instead of panic in your app
		}

		// fmt.Println("Hay now is ", time.Now())


		// Prepare statement for inserting data
		
	    stmtIns, err := db.Query(queryBuilder())
	    if err != nil {
	        panic(err.Error()) // proper error handling instead of panic in your app
	    }
	    defer stmtIns.Close() // Close the statement when we leave main() / the program terminates

	   
	}


02:28 PM

Cara elegan untuk membangun query ... :) Awesome ...

    package main

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

    func insert(waktu string, isi string, db *sql.DB) string {

    	// Prepare statement for inserting data
        stmtIns, err := db.Prepare("INSERT INTO squarenum VALUES( ?, ? )") // ? = placeholder
        if err != nil {
            panic(err.Error()) // proper error handling instead of panic in your app
        }
        defer stmtIns.Close()

    	_, err = stmtIns.Exec(waktu, isi) // Insert tuples (i, i^2)
        if err != nil {
            panic(err.Error()) // proper error handling instead of panic in your app
        }

        return ":)"
    }


    func main() {
        db, err := sql.Open("mysql", "root:GunungMerapi2012@/himbauan")
        // fmt.Println(reflect.TypeOf(db))
    	if err != nil {
    	    panic(err.Error()) // Just for example purpose. You should use proper error handling instead of panic
    	}
    	defer db.Close()

    	// Open doesn't open a connection. Validate DSN data:
    	err = db.Ping()
    	if err != nil {
    	    panic(err.Error())
    	}
    	
    	insert(fmt.Sprint(time.Now()), "X", db)
     
    }


71 views