go服務端----mysql簡單示例
mysql簡單示例
趁現在公司的事情沒那麼多,多寫幾篇吧,雖然都比較基礎,但是寫了總比不寫好。
mysql大家應該都瞭解,一款非常流行的開源關係資料庫應用,而go語言中mysql的庫不是很多,其中使用的人最多的應該就是go-sql-driver/mysql了吧,我的專案中同樣也用了這個庫,同樣貼出它的github倉庫地址
go-sql-driver/mysql
下面貼一下用go-sql-driver/mysql操作資料庫的簡單例子的程式碼,非常基礎,直接看註釋就好。
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
//db配置資訊
user := "root"
psw := "jiandanmima"
host := "localhost"
port := 3306
dbname := "testdb"
charset := "utf8"
config := fmt.Sprintf("%s:%[email protected](%s:%d)/%s?charset=%s", user, psw, host, port, dbname, charset)
//連線資料庫,獲取連線例項
db, err := sql.Open("mysql" , config)
if err != nil {
fmt.Println("open db error", err)
}
//設定最大閒置連線和最大開啟連線,具體數值按需指定
db.SetMaxIdleConns(32)
db.SetMaxOpenConns(32)
//增刪改查操作
err = Insert(db, "劉小明", "男", 18)
if err != nil {
fmt.Println("insert err", err)
}
err = Delete(db, 1)
if err != nil {
fmt.Println("delete err", err)
}
err = Update(db, 2, 22)
if err != nil {
fmt.Println("update err", err)
}
err = Select(db, 3)
if err != nil {
fmt.Println("select err", err)
}
err = SelectAll(db)
if err != nil {
fmt.Println("select all err", err)
}
}
//增
func Insert(db *sql.DB, name string, sex string, age int) error {
sen := "INSERT INTO people(name, sex, age) VALUES (?, ?, ?)"
stmt, err := db.Prepare(sen)
if err != nil {
return err
}
defer stmt.Close() //預處理記得關閉連線,使用defer在函式return前關閉
rst, err := stmt.Exec(name, sex, age)
if err != nil {
return err
}
lastId, err := rst.LastInsertId()
if err != nil {
return err
}
fmt.Printf("last insert id %d.\n", lastId)
return nil
}
//刪
func Delete(db *sql.DB, id int) error {
sen := "DELETE FROM people WHERE id = ?"
stmt, err := db.Prepare(sen)
if err != nil {
return err
}
defer stmt.Close()
rst, err := stmt.Exec(id)
if err != nil {
return err
}
rowsAffected, err := rst.RowsAffected()
if err != nil {
return err
}
fmt.Printf("%d records has been deleted.\n", rowsAffected)
return nil
}
//改
func Update(db *sql.DB, id int, age int) error {
sen := "UPDATE people SET age = ? WHERE id = ?"
stmt, err := db.Prepare(sen)
if err != nil {
return err
}
defer stmt.Close()
rst, err := stmt.Exec(age, id)
if err != nil {
return err
}
rowsAffected, err := rst.RowsAffected()
if err != nil {
return err
}
fmt.Printf("%d records has been updated.\n", rowsAffected)
return nil
}
//查
func Select(db *sql.DB, id int) error {
sen := "SELECT name, sex, age FROM people WHERE id = ?"
stmt, err := db.Prepare(sen)
if err != nil {
return err
}
defer stmt.Close()
row := stmt.QueryRow(id)
var name, sex string
var age int
row.Scan(&name, &sex, &age)
fmt.Printf("the information of id %d: name = '%s', sex = '%s', age = %d.\n", id, name, sex, age)
return nil
}
//查詢多條記錄
func SelectAll(db *sql.DB) error {
sen := "SELECT id, name, sex, age FROM people ORDER BY id"
stmt, err := db.Prepare(sen)
if err != nil {
return err
}
defer stmt.Close()
rows, err := stmt.Query()
if err != nil {
return err
}
defer rows.Close() //查詢多條記錄的rows介面卡也需要及時關閉
fmt.Println("all information of table people:")
fmt.Println("id name sex age")
for rows.Next() {
var id, age int
var name, sex string
rows.Scan(&id, &name, &sex, &age)
fmt.Printf("%d %s %s %d\n", id, name, sex, age)
}
return nil
}
程式執行前的資料表資料
程式執行的輸出結果
最後附上資料表建立和資料插入語句
CREATE TABLE `people` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`name` varchar(255) NOT NULL DEFAULT '' COMMENT '姓名',
`sex` varchar(8) NOT NULL DEFAULT '男' COMMENT '性別',
`age` int(11) NOT NULL DEFAULT '0' COMMENT '年齡',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into people(name, sex, age) values('張全蛋', '男' , 18), ('趙鐵根', '男', 19), ('李小花', '女', 20), ('王尼瑪', '男', 36);
golang簡單的mysql操作就在這了。
相關推薦
go服務端----mysql簡單示例
mysql簡單示例 趁現在公司的事情沒那麼多,多寫幾篇吧,雖然都比較基礎,但是寫了總比不寫好。 mysql大家應該都瞭解,一款非常流行的開源關係資料庫應用,而go語言中mysql的庫不是很多,其中使用的人最多的應該就是go-sql-driver/mysql了
TCP客戶端圖片上傳服務端儲存本地示例
//TCP客戶端public class TCPClient { public static void main(String[] args)throws IOException { Socket socket = new Socket("127.0.0.1",8888)
Android之提交資料到服務端方法簡單封裝
在Android應用中,除了單機版的應用,其餘的應用免不了需要頻繁地與服務端進行資料互動,如果每一種方法都獨立寫一段程式碼,那會造成程式碼大量重複,冗餘,這不是我們所希望的,所以我們可以對其進行一些封裝,這樣不但可以提高程式碼質量,最重要的是我們自己用起來也爽啊。 首先,我們先建立個webservice資料
android與服務端websocket通訊示例
服務端庫依賴詳見章末 spring websocket服務端程式碼(會話過程) public class HandshakeInterceptor extends HttpSessionHandshakeInterceptor { priva
2、netty3服務端入門程式碼示例
package com.server; import java.net.InetSocketAddress; import java.util.concurrent.ExecutorService; import java.util.concurrent.Ex
NIO學習之Selector,SelectionKey與客戶端與服務端通訊簡單實現(1)
選擇器(Selector)的 作用:將通道感興趣的事件放入佇列中,而不是馬上提交給應用程式,等已註冊的通道自己來請求處理這些事件。換句話說,就是選擇器將會隨時報告已經準備好了的通道,而且是按照先進先出的順序。 Selector類定義如下: open(
android客戶端和servlet服務端的簡單登入實現
本文實現了一個android客戶端輸入使用者名稱和密碼登入跳轉到其他android客戶端介面的簡單demo,主要是熟悉android客戶端的網路程式設計,服務端的程式設計,資料庫的操作。 1、android客戶端 主介面如下所示: 對應的佈局檔案: activity_ma
從go服務端"設定cookie"來看cookie的本質
cookie到底是什麼, 很多地方越說越亂,玄乎其玄, 其實,很簡單, 一起來看看。 go 服務端的程式碼為: package main import "net/http" func main() { http.HandleFunc
UDP 多執行緒服務端 和 簡單客戶端
首先來了解UDP協議的幾個特性 (1)UDP是一個無連線協議,傳輸資料之前源端和終端不建立連線,當UDP它想傳送時就簡單地去抓取來自應用程式的資料,並儘可能快地把它扔到網路上。在傳送端,UDP傳送資料的速度僅僅是受應用程式生成資料的速度、計算機的能力和傳輸頻寬的限制;在接收
【go語言 socket程式設計系列】從單執行緒到簡單多執行緒的服務端搭建
簡單單執行緒serverdemo 通過下面程式碼簡單搭建一個服務端,並通過telnet模擬客戶端,演示多客戶端同時請求訪問單執行緒伺服器時的阻塞現象。 package main import ( "fmt" "net" "os" ) func main() {
Go Kafka客戶端簡單示例
一. 準備 安裝依賴庫saramago get github.com/Shopify/sarama該庫要求kafka版本在0.8及以上,支援kafka定義的high-level API和low-le
01 ftp上傳簡單示例服務端
import json import socket import struct server = socket.socket() server.bind(('127.0.0.1',8001)) server.listen() conn,addr = server.accept() #首先接收檔案的描
WCF服務端與使用HttpClient的Android客戶端簡單示例
WCF服務端 Contract using System.Collections.Generic; using System.Runtime.Serialization; using System.ServiceModel; using System.S
WCF服務端與使用HttpURLConnection的Android客戶端簡單示例
WCF服務端 契約Contract using System.ServiceModel; using System.ServiceModel.Web; namespace Contract { /// <summary> /
Go實戰--實現一個簡單的tcp服務端和客戶端(The way to go)
生命不止,繼續 go go go !!! 之前介紹了go為我們提供的net/http包,很方便的建立一些api。 今天就來點實戰,寫一個簡單的tcp的服務端、客戶端程式。 按照國際慣例,還是先介紹一點點基礎知識。 * net.Listen* Liste
JPush簡單Java服務端案例實現
服務端 開發者 comm platform die spa message else 獲取數據 一、激光推送準備工作 1、註冊極光推送開發者賬號,創建應用: 2、完成推送設置,填寫應用名提交生成安裝包: 3、掃碼安裝簡單的測試apk,查看應用信息會有AppKey和Mas
編寫一個簡單的TCP服務端和客戶端
不同的 大連 終端 服務器端 com 讀寫 所有 字數 資料 下面的實驗環境是linux系統。 效果如下: 1.啟動服務端程序,監聽在6666端口上 2.啟動客戶端,與服務端建立TCP連接 3.建立完TCP連接,在客戶端上向服務端發送消息 4.斷開
Http 服務 簡單示例
port net all resp fatal nal fun final pack 現在我們實現一個GO的Web http服務 只做演示,沒有實際功能 但是能看出Go做Http服務的簡潔 **************************************** p
python---》客戶端與服務端的基礎(做一個簡單的客戶端與服務端)
python 今天我們分享的內容是python簡單的客戶端與服務端,此處僅介紹一些簡單的函數,並作出來一個玩兒玩兒。 在開始之前呢,先用一張圖表示他們之間的關系 我們來按照這個步伐依次介紹:服務端:import socketserver=socket.socket()#此處是為了創建
jdbc-mysql基礎 增刪查改 簡單示例
做的 裏的 http exec pda 針對 ping 含義 ade 禮悟: 好好學習多思考,尊師重道存感恩。葉見尋根三二一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉強身心,誠勸且行且珍惜。 數據、數據,命根就在數據