有些事做一做,就能感觉到“万事开头难”,当然还能感觉到自己水平有够低。有了这份经历,对各位开源大神也有了几分敬意。只要做了一遍,就完全不一样了,那么以后对待那些不做而评头论足的人,也就没有必要理会了。
低水平代码,只记录自己学习的发现。
基本思路是,建立Model,用于拼接SQL。
所有的model可以直接setStr(col,value)去赋值(当然一开始也只支持string),随后可以直接model.Insert进行插入操作。
type Model struct {
attr map[string]string
TableName string
}
func (model *Model) SetStr(col string,value string){
if model.attr==nil {
model.attr = make(map[string]string)
}
model.attr[col]=value
}
这里发现两个要注意的(只是基础不牢的人区分与Java不同时要注意的),其他go文件里调用方法,只能调用首字母大写的方法。比如我原本定义的是setStr,那么其他package下的go文件就无法调用,改成SetStr就可以了。
另外是关于func中的参数,对于Java,方法是类的行为,那么model.save()可以直接调用,在go中,需要写成func (model Model) setStr,那么model.setStr才能被调用。同时,(model Model)和(model *Model)也有区别,具体内容在这里不详细说(这里可以稍微了解下),在目前使用的层面上而言,(model *Model)可以使各方法可以共享type里定义的变量。