第250期 / August 6, 2018

分享到臉書!分享到維特!分享到噗浪!分享到Google+!分享到微博!轉寄友人友善列印

Go語言實作網頁表單存到資料庫(MySQL)

作者/孫崧閔

[發表日期:2018/7/5]

作者簡歷

目前任職於凌群電腦軟體事業群,主要專長為C語言、Java、android、資料庫、Servlet/JSP、jQuery。曾於本公司為客戶專案(專案:經濟部智慧財產局「104~105年辦公室自動化系統」導入HTML5、JAVA相關技術與BPM2規範流程引擎),協助為此專案修改、開發Activiti客製化模組,使本案能順利進行。


序論

Go語言是Google在2009年所推出,是一套強型別、需編譯、具有Garbage collection的程式語言,在Linux、MacOS或是Windows皆可以執行。Go語言優勢有1.快速又簡單部屬2.支援跨平台編譯3.保護原始程式碼4.善用多核心處理。

安裝Go

一、可以先到官方網站https://golang.org/dl/去下載GO。


《圖一》


因為筆者使用windows8作業系統、64位元電腦,所以就選如圖檔案安裝。


《圖二》



《圖三》


安裝完成。

二、測試有無安裝成功,打開電腦的命令提示字元,輸入'go'。


《圖四》


如果出現如上圖所示,Go語言的一些資訊,代表已經安裝成功。

三、安裝Go語言開發工具:

本文將介紹幾個開發工具,它們都具有自動化提示和自動化fmt功能。因為它們都是跨平台的,所以安裝步驟都是通用的。
  • LiteIDE:

    是一款專門為Go語言開發的跨平台輕量級整合式開發環境,(IDE)由visualfc撰寫。LiteIDE的主要特點有
    1.支援主流作業系統(Windows、Linux、MacOS)。
    2.Go語言編譯環境管理和切換:管理和切換多個Go語言編譯環境,支援Go語言交換編譯。
    3.與Go語言標準一致的專案管理方式:以GOPATH為基礎的套件瀏覽器,以GOPATH為基礎的編譯系統,以GOPATH為基礎的API文件檢索。
    4.GO語言的編輯支援:類別瀏覽器看大綱顯示,Gocode(程式自動完成工具)的完美支援,Go語言文件檢視和API快速檢索,程式運算式資訊顯示F1,原始程式碼定義跳躍支援F2,gdb中斷和偵錯支援,gofmt自動格式化支援。
    5.其他特徵:支援多國語言介面顯示,完全外掛程式系統結構,支援編輯器配色方案,以Kate為基礎的語法顯示支援,以全文為基礎的單字自動完成,支援鍵盤快速鍵綁定方案,Markdown文件編輯支援
    6.即時預覽和同步顯示。
    7.自訂CSS顯示。
    8.可匯出HTML和PDF文件。
    9.批示轉換/合併為HTML/PDF文件。


  • Sublime Text 2:

    多行編輯,用戶可一次選擇多行並進行同步編輯。(IDE)由visualfc撰寫。LiteIDE的主要特點有
    1.支援主流作業系統(Windows、Linux、MacOS)。
    2.Go語言編譯環境管理和切換:管理和切換多個Go語言編譯環境,支援Go語言交換編譯。
    3.與Go語言標準一致的專案管理方式:以GOPATH為基礎的套件瀏覽器,以GOPATH為基礎的編譯系統,以GOPATH為基礎的API文件檢索。
    4.GO語言的編輯支援:類別瀏覽器看大綱顯示,Gocode(程式自動完成工具)的完美支援,Go語言文件檢視和API快速檢索,程式運算式資訊顯示F1,原始程式碼定義跳躍支援F2,gdb中斷和偵錯支援,gofmt自動格式化支援。
    5.其他特徵:支援多國語言介面顯示,完全外掛程式系統結構,支援編輯器配色方案,以Kate為基礎的語法顯示支援,以全文為基礎的單字自動完成,支援鍵盤快速鍵綁定方案,Markdown文件編輯支援
    6.即時預覽和同步顯示。
    7.自訂CSS顯示。
    8.可匯出HTML和PDF文件。
    9.批示轉換/合併為HTML/PDF文件。


  • Vim:

    Vim是從vi發展出來的文字編輯器,程式補全,編譯及錯誤跳躍等方便程式的功能特別豐富,被廣大程式設計師使用。


  • Emacs:

    Emacs是傳說中的神器,它不僅僅是一個編輯器,還是一個整合環境,或可稱它為整合式開發環境,這些功能就像讓使用者置身於全功能的作業系統中。


  • Eclipse:

    Eclipse也是常用的開發利器,下載goeclipse外掛程式後就可在Eclipse上來撰寫Go語言程式。

使用LiteIDE撰寫第一個Go語言程式

首先到https://sourceforge.net/projects/liteide/下載windows版本的LiteIDE。


《圖五》


下載安裝完成後,打開壓縮檔裡面的exe檔案。


《圖六》


如果上述安裝都沒問題,照理說就能直接打開程式如下圖。


《圖七》


接著我們new一個go檔案名稱Hello.go,並印出Hello World!


《圖八》


Go程式碼寫完點選介面上的BR來run程式。


《圖九》


執行成功後,畫面下方會印出”Hello World! ”字樣,代表Go語言開發環境大功告成。


《圖十》


使用MySQL資料庫

可以參考https://github.com/go-sql-driver/mysql

一、先安裝git在自己電腦上,可以到https://git-scm.com/downloads安裝。
安裝完畢後環境變數path後面新加一個C:\Program Files\Git\bin,如下圖。


《圖十一》


接著打開電腦命令提示字元,輸入”git --version”,檢查看git有無安裝成功,如果安裝成功會如下圖顯示。


《圖十二》


二、在命令提示字元上輸入"go get -u github.com/go-sql-driver/mysql”,如下圖。


《圖十三》


安裝成功後可以在” C:\Users\User\go\src”找到安裝mysql的資料夾,如下圖。


《圖十四》


三、在GO裡面使用MySQL驅動_ "github.com/go-sql-driver/mysql"


《圖十五》


程式執行結果如下圖所示


《圖十六》


可以使用MySQL Workbench或是命令提示字元觀看資料庫內容有無新增成功。


《圖十七》



《圖十八》


實作利用網頁表單透過GO存進MySQL

假設我們在網頁表單使用者名稱輸入”王大明”,喜歡的水果輸入”蘋果”,喜歡的運動輸入”籃球”,喜歡的明星輸入”JAY”,最後可以看到伺服器端顯示”新增資料庫成功”,最後可以查看MySQL有無這筆資料。

HTML語法:


《圖十九》


瀏覽器下看到的畫面:


《圖二十》


GO伺服器端:




《圖二十一》


伺服器端執行畫面:


《圖二十二》


以下是透過命令提式字元查看mysql資料。


《圖二十三》


系統特點

1.開放原始碼(open source)
2.跨平台(cross-platform)
3.內建全自動垃圾回收(garbage collection)
4.內建平行處理(concurrency)的語法
5.內建函式程式設計(functional programming)
6.輕量級物件(object)系統
7.程式風格強制統一
8.快速編譯
9.內建開發相關工具
10.豐富的標準函式庫
11.成長中的社群資源

結論

目前台灣使用Go語言的公司,有17直播、Dcard、旋轉拍賣、雲豹科技、聯發科技、凌網科技、工研院……等等這些常看到的公司。GO語言適用於伺服器編程、 分布式系統、網絡編程、內存資料庫和雲平台,而這些領域正是IT技術未來發展的重要方向。

參考資料

1.GO官方網站

2.台灣使用Go語言的公司

3.Go程式設計教學:簡介