使用go来做系统,如何比java node php 更 简单

使用go来做系统,如何比java node php 更 简单,第1张

概述使用gogo语言的好处不言而喻:效率问题,无论是开发效率还是运行效率至少都兼顾了,比较适合中国国情。运行可以以脚本运行,可以编译结果运行跨平台没有大问题例子,五分钟httpserve和mysql准备好showmethecode先写一个数据库连接获取数据的packagemainimport 使用go

go语言的好处不言而喻:

效率问题,

无论是开发效率还是运行效率至少都兼顾了,比较适合中国国情。

运行

可以以脚本运行,可以编译结果运行

跨平台

没有大问题

例子,五分钟httpserve 和 MysqL 准备好show me the code先写一个数据库连接获取数据的
  package main import (	"database/sql"	"fmt" 	_ "github.com/go-sql-driver/MysqL"	"github.com/jmoiron/sqlx") var DB *sqlx.DB func initDb() error {	var err error	dsn := "root:root@tcp(127.0.0.1:3306)/test"	DB, err = sqlx.Open("MysqL", dsn)	if err != nil {		return err	}	DB.SetMaxOpenConns(100)	DB.SetMaxIDleConns(16)	return nil} type User struct {	ID   int64          `db:"ID"`	name sql.NullString `db:"name"`	Age  int            `db:"age"`} func testsqlxquery() {	sqlstr := "select ID,name,age from user where ID = ?"  	var user User 	err := DB.Get(&user, sqlstr, 1)	if err != nil {		fmt.Printf("select Failed, err:%v\n", err)		return	} 	fmt.Printf("user:%#v\n", user)} func main() {	err := initDb()	if err != nil {		fmt.Printf("init db Failed, err:%v\n", err)		return	}	testsqlxquery()}

运行立刻得到结果,速度效率兼顾,当然自己需要

加上httpserver,然后从httpserver返回结果
package mainimport (	"github.com/gin-gonic/gin"	"fmt"	//"database/sql"    _ "github.com/go-sql-driver/MysqL"    "github.com/jmoiron/sqlx"	//"net/http")var (    username  string = "root"    password  string = "root"    ipAddrees string = "localhost"    port      int    = 3306    dbname    string = "test"    charset   string = "utf8") type User struct {    ID int `db:"ID"`    name string `db:"name"`    Age int `db:"age"`    Address string `db:"address"`} func getUser(Db *sqlx.DB) ([]User) {    var users []User  // 这里创建的是存放结构体的切片    if err := Db.Select(&users, "select * from user where ID > ?", 0); err != nil {        fmt.Println("Select ERROR:", err)        return nil    }    fmt.Println(users)    return users}func getUserRecord(Db *sqlx.DB,ID int64){    result, err := Db.Exec("select * from user where ID = ?",ID)    if err != nil {        fmt.Printf("delete faIEd, error:[%v]", err.Error())        return    }    num, _ := result.RowsAffected()    fmt.Printf("select success, affected rows:[%d]\n", num)	//return result()}func connectMysqL() (*sqlx.DB) {    dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", username, password, ipAddrees, port, dbname, charset)    Db, err := sqlx.Open("MysqL", dsn)    if err != nil {        fmt.Printf("MysqL connect Failed, detail is [%v]", err.Error())		return nil    }	Db.SetMaxOpenConns(20)	Db.SetMaxIDleConns(15)    return Db}func main() {	var Db *sqlx.DB = connectMysqL()	if Db == nil{		fmt.Println("db error")	}	defer Db.Close()    	x:=getUser(Db)	r := gin.Default()	r.GET("/Ping", func(c *gin.Context) {		c.JsON(200, gin.H{			"message": "I am qianbo",		})	})	r.GET("/get/user",func(c *gin.Context){        c.JsON(200,gin.H{            "data":x,		})	})	r.Run() // Listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")}

浏览器里输入http://127.0.0.1:8080/get/user
可以看到返回的Json结果,我会继续写完整,go 语言和c,c++配合来写系统,事半功倍。

总结

以上是内存溢出为你收集整理的使用go来做系统,如何比java node php 更 简单全部内容,希望文章能够帮你解决使用go来做系统,如何比java node php 更 简单所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244318.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存