草庐IT

SpringBoot的数据库连接池

全部标签

sql - 使用 gorm 插入数据时,检查不存在相同

我正在使用gorm。我想在不存在相同值的情况下插入值就像原始sql一样。INSERTINTOstudent(firstname,lastname)SELECT'NEWFIRSTNAME','NEWLASTNAME'FROMDUALWHERENOTEXISTS(SELECT1FROMtable_nameWHEREfirstname='NEWFIRSTNAME'ANDlastname='NEWLASTNAME')LIMIT1;如何用gorm实现这个功能typeStudentstruct{FirstnamestringLastnamestring}funcinsert(){stu:=Stud

go - 如何在golang中编写一个函数来处理两种类型的输入数据

我有多个struct共享一些字段。例如,typeAstruct{ColorstringMassfloat//...otherproperties}typeBstruct{ColorstringMassfloat//...otherproperties}我还有一个只处理共享字段的函数,比如说funcf(x){x.Colorx.Mass}遇到这种情况怎么办?我知道我们可以将颜色和质量转化为函数,然后我们可以使用接口(interface)并将该接口(interface)传递给函数f。但是,如果A和B的类型无法更改怎么办。我是否必须定义两个实现基本相同的函数? 最佳

postgresql - Gorm 无法连接到本地 postgres 数据库

我是GoLang的新手,在将我的Go网络服务器与Postgres数据库连接时遇到了问题。有人可以告诉我我在这里做错了什么吗?顺便说一句,所有这些凭据都是正确的。用户存在,密码正确,数据库存在且属于用户。packageappimport("github.com/jinzhu/gorm"_"github.com/jinzhu/gorm/dialects/postgres")funcconnectDB(){db,err:=gorm.Open("postgres","host=localhostport=5432user=power_userdbname=local_dbpassword=po

go - 并发写入 websocket 连接

我正在为websockets使用github.com/gorilla/websocket。我有这个代码typeCONNstruct{Conn*websocket.ConnUsernamestringhand[]stringmu*sync.Mutex}func(c*CONN)Send(messageTypeint,message[]byte)error{c.mu.Lock()deferc.mu.Unlock()returnc.Conn.WriteMessage(messageType,message)}//later...connection.Send(messageType,[]byt

go - 尝试使用 go routines 时无法抓取数据

我正在尝试为我正在使用BFS的给定词抓取相关词,从给定词开始并在dictionary.com上搜索每个相关词我已经在没有并发的情况下尝试过这段代码,它工作得很好,但需要很多时间,因此尝试使用goroutines但我的代码在第一次迭代后卡住了。第一级BFS工作正常,但在第二级它挂起!packagemainimport("fmt""github.com/gocolly/colly""sync")varwgsync.WaitGroupfuncbuildURL(wordstring)string{return"https://www.dictionary.com/browse/"+string

go - 我想获得一个数据 session 和标题,但是从数据库中检索数据时它在循环之外

我已经从数据库中获取了所有数据,然后数据处于循环中。除了发生的循环之外,我还想插入其他数据,例如Session和Title。然后我将它放入模板中。我有一个猜测是使用struct还是slice,但是学了之后找不到解决方案。typeSekolahstruct{IdintNamastringAlamatstringTelpstring}我有一个类似上面的结构,然后我创建句柄函数http.HandleFunc("/sekolah",func(whttp.ResponseWriter,r*http.Request){//THISISTHEDATAIWANTTOSERVEINTEMPLATEvar

http - 我认为我的文件上传连接正在关闭...为什么?

免责声明:我不确定标题是否是我的实际问题,但这是对以下内容有意义的唯一原因。场景我正在将大型视频上传到我的Golang服务器。我有一个8GB的​​文件,在本地大约需要15分钟,并且运行良好。但是,在我的暂存服务器(GoogleCloud)上,上传此文件需要一个多小时,这就是问题所在。问题我的客户端正在等待文件完成上传以便调用另一个API端点,但只有在登台服务器上才会失败。所以看起来当我的服务器正在寻找写入响应时,连接将不允许它,因为客户端显示502错误和CORS错误,我知道这是Chrome的说法“我们不知道,请检查您的服务器”。代码在我的SrcHandler中是这样的:deferfun

go - 如何使用 mongo-driver 连接到其他包

我在gin框架中使用Mongo-driver。我已经在DB包中编写了连接mongodb的代码,如果我在db/connect.go中编写查询,它会工作,但是当我在其他包中使用相同的dbcon时,它不会'吨。db/connect.go:vardbcon*mongo.DatabasefuncConfigDB()(*mongo.Database){ctx:=context.Background()client,err:=mongo.Connect(ctx,options.Client().ApplyURI("mongodb://localhost:27017/todo"),)iferr!=ni

mysql - 启用远程 MySQL 连接 : ERROR 1045 (28000): Access denied for user

运行在WindowsXP上的MySQL5.1.31。从本地MySQL服务器(192.168.233.142)我可以以root身份连接,如下所示:>mysql--host=192.168.233.142--user=root--password=redacted从远程机器(192.168.233.163),我可以看到mysql端口是打开的:#telnet192.168.233.1423306Trying192.168.233.142...Connectedto192.168.233.142(192.168.233.142).但是当尝试从远程机器连接到mysql时,我收到:#mysql--

go - 使用 go-mocket 模拟 GORM 数据库不起作用

我正在尝试使用go-mocket来模拟gorm数据库,但它无法正常工作。我没有向我的ClusterExists函数发送任何模拟数据,因此单元测试无法按预期工作。在文档中有两种模拟“简单链用法”和“FakeResponse”的方法。我已经尝试了两种方法,但都不起作用。我的功能:funcClusterExists(cluster*Cluster,db*gorm.DB)bool{c:=Cluster{}exists:=!db.Where("cluster_name=?ANDenv_type=?",cluster.ClusterName,cluster.EnvType).First(&c).R