日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

go mysql存储过程_Golang 调用MySQL存储过程

發(fā)布時(shí)間:2024/10/8 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go mysql存储过程_Golang 调用MySQL存储过程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Golang 調(diào)用MySQL存儲過程

最近寫項(xiàng)目發(fā)現(xiàn),很多邏輯業(yè)務(wù)的實(shí)現(xiàn),寫到數(shù)據(jù)庫的存儲過程中,然后調(diào)用,真的非常方便。后端代碼量大大減少,最重要的是性能高,速度快!

引用說明:項(xiàng)目使用數(shù)據(jù)庫ORM xorm(附地址)

存儲過程代碼 demo:

數(shù)據(jù)庫名:user

表名:student

create table student

(

id int auto_increment primary key,

name varchar(10) null,

age int null comment '年齡',

gender tinyint null comment '性別<1:男/2:女>',

phone varchar(15) null,

address varchar(50) null

);

insert into student (name, age, gender, phone, address) values ('Jerry',28,1,'13812341234','上海市');

存儲過程 demo

-- 創(chuàng)建存儲過程

create procedure query_student(IN i_name varchar(10),

IN i_gender tinyint,

OUT o_id int,

OUT o_name varchar(10),

OUT o_age int,

OUT o_gender tinyint,

OUT o_phone varchar(15),

out o_address varchar(50))

comment '根據(jù)名字和性別查詢學(xué)生信息'

begin

-- 搜索信息并賦值

select student.id,

student.name,

student.age,

student.gender,

student.phone,

student.address

into o_id,o_name,o_age,o_gender,o_phone,o_address

from student

where student.name = i_name

and student.gender = i_gender;

-- 返回結(jié)果需要返回的結(jié)果

select o_id,o_name,o_age,o_gender,o_phone,o_address;

end;

Golang代碼 demo:

代碼:

var engine *xorm.Engine

func InitMySQL(dbDsn string) {

var err error

engine, err = xorm.NewEngine("mysql", dbDsn)

if err != nil {

panic(err)

}

engine.ShowSQL(true)

}

func MySQL() *xorm.Engine {

return engine

}

InitMySQL("user:password@tcp(127.0.0.1:3306)/user?charset=utf8")

queryString, err := MySQL().QueryString("call user.query_student(?,?,@1,@2,@3,@4,@5,@6)", "Jerry", 1)

if err != nil {

log.Println("err:", err)

}

for k, v := range queryString[0] {

fmt.Printf("columns:%v - value:%v\n", k, v)

}

輸出結(jié)果

columns:o_name - value:Jerry

columns:o_age - value:28

columns:o_gender - value:1

columns:o_phone - value:13812341234

columns:o_address - value:上海市

columns:o_id - value:1

以上只是做了個最簡單的demo,如果遇到更復(fù)雜的搜索情況,靠存儲過程實(shí)現(xiàn),效率非常可觀!

標(biāo)簽:調(diào)用,varchar,name,err,gender,Golang,student,MySQL,columns

來源: https://blog.csdn.net/ming2316780/article/details/86499344

總結(jié)

以上是生活随笔為你收集整理的go mysql存储过程_Golang 调用MySQL存储过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。