感觉目前Go开发Web不是很成熟,有些操作很不方便,Dao层的框架没有Mybatis那么强大,很多人在开发的时候都会使用ORM的框架,而我自己喜欢自己写SQL,我感觉这样会更加的灵活。
最近在使用Go开发一个项目,Dao层用的原生的方式(使用?作为占位符),在写where in 时遇到了一个很繁琐的问题。记录一下解决的方案。
querySQL := "select id from users u"
ids := []string{"1","2","3","4"}
sprintf := fmt.Sprintf(" where u.id in ('%s')", strings.Join(ids, "','"))
querySQL += sprintf
rows, err := db.Query(querySQL)
这样的方案可能会出现SQL注入的问题,但是str变量是我们在内存中进行处理,只要不让前端传即可。