#installation
1 catatan
|
2 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) }