当前位置: 首页 > news >正文

龙元建设集团有限公司网站做家政网站公司

龙元建设集团有限公司网站,做家政网站公司,网站建设的外文参考文献,做彩票网站犯法吗有了前面几节的学习#xff0c;如果做个简单的web服务端已经可以完成了。 这节来做一下优化。 我们实验了3种SQL写入的方法#xff0c;但是发现每一种都需要在方法中去做数据库链接的操作#xff0c;有些重复了。 所以#xff0c;我们把这部分提取出来#xff0c;数据库链…有了前面几节的学习如果做个简单的web服务端已经可以完成了。 这节来做一下优化。 我们实验了3种SQL写入的方法但是发现每一种都需要在方法中去做数据库链接的操作有些重复了。 所以我们把这部分提取出来数据库链接的功能提取出来数据库的配置也提取出来。 这就是今天这节要做的内容配置化。 配置文件通常是放在conf目录下所以我们在t_gin/下新建一个conf目录用来存放配置文件。 然后在conf目录下新建一个service.conf文件作为实验用的配置文件。 完成后的目录结果如下 配置文件这里使用.ini的格式。 要解析.ini格式我们需要下载对应的package $ go get gopkg.in/ini.v1将package安装好之后我们再来想一下配置文件里放什么。 首先我们可以将数据库配置放进去简单点的就是dsn这个在多场景都会用到就不用在每个文件中去重复定义了。 在service.conf中添加数据库配置 [mysql] dsn root:tcp(127.0.0.1:3306)/t_gin?charsetutf8parseTimetrue配置添加好了怎么用呢 方便一点就继续使用上一节的worker.go文件来进行改造。 要做的是 1.将数据库链接操作提取出来不用每个方法都写一遍 2.将dsn配置改为从配置文件service.conf中获取不用每个文件都写一遍。 开始撸码 func (w *WorkerController) init() *sql.DB {cfg, err : ini.Load(conf/service.conf)if err ! nil {log.Println(err.Error())}mysqlDsn : cfg.Section(mysql).Key(dsn).String()db, err : sql.Open(mysql, mysqlDsn)if err ! nil {log.Panic(err.Error())}return db }init方法是我们的简单实现。 从service.conf中读取了dsn信息然后建立数据库链接并返回链接。 那方法提取出来了文件中之前的代码插入、查询、更新我们也同步进行调整。 调整之后的worker.go文件内容如下 package controllerimport (database/sqlgithub.com/gin-gonic/gingithub.com/huandu/go-sqlbuildergopkg.in/ini.v1lognet/http )type WorkerController struct { }type Worker struct {ID int json:idName string json:nameBirth string json:birth }func (w *WorkerController) init() *sql.DB {cfg, err : ini.Load(conf/service.conf)if err ! nil {log.Println(err.Error())}mysqlDsn : cfg.Section(mysql).Key(dsn).String()db, err : sql.Open(mysql, mysqlDsn)if err ! nil {log.Panic(err.Error())}return db }func (w *WorkerController) CreateWorker(c *gin.Context) {db : w.init()name : c.PostForm(name)birth : c.PostForm(birth)sb : sqlbuilder.NewInsertBuilder()sb.InsertInto(worker)sb.Cols(name, birth)sb.Values(name, birth)sqlString, args : sb.Build()log.Println(sqlString, args)_, err : db.Exec(sqlString, args...)if err ! nil {log.Panic(err.Error())}c.JSON(http.StatusOK, gin.H{code: 0,data: true,}) }func (w *WorkerController) GetWorkerInfo(c *gin.Context) {db : w.init()id : c.Query(id)sb : sqlbuilder.NewSelectBuilder()sb.From(worker)sb.Select(id,name,birth)sb.Where(sb.Equal(id, id))sqlString, args : sb.Build()log.Println(sqlString, args)result : db.QueryRow(sqlString, args...)var worker Workererr : result.Scan(worker.ID, worker.Name, worker.Birth)if err ! nil {log.Panic(err.Error())}c.JSON(http.StatusOK, gin.H{code: 0,data: worker,}) }func (w *WorkerController) UpdateWorkerInfo(c *gin.Context) {db : w.init()id : c.PostForm(id)name : c.PostForm(name)sb : sqlbuilder.NewUpdateBuilder()sb.Update(worker)sb.Where(sb.Equal(id, id))sb.SetMore(sb.Assign(name, name))sqlString, args : sb.Build()log.Println(sqlString, args)_, err : db.Exec(sqlString, args...)if err ! nil {log.Panic(err.Error())}c.JSON(http.StatusOK, gin.H{code: 0,data: true,}) }修改完之后我们运行测试对插入、获取、更新方法都进行测试后确认代码功能正常。 在这里简单的将mysql的dsn配置抽出到了配置文件中做了一个示例同样的其它一些不常用的或者很常用的配置都是可以放在配置文件中进行处理的免去了项目中多处写有利于配置管理。 今天这节就到这儿。
http://www.hkea.cn/news/14282480/

相关文章:

  • 设计师网站兼职免费开源网站系统
  • 博客论坛网站开发公司让做网站违法
  • 为企业做网站建设优化小程序包年竞价凡科网用户登录
  • 营销型网站的建设软文使馆网站建设
  • 建设一个怎样的自己的网站建设一个打鱼游戏网站
  • 怎样做企业手机网站建设网页设计与制作配套素材
  • 滁州市大滁城建设网站wordpress数据搬移
  • 德化县住房和城乡建设局网站东道设计地址
  • 明年做那个网站能致富中国建设协会官网证件查询
  • 网站广告投放价格表广西建设厅考试网站首页
  • 网站排名必做阶段性seo策略获取更多付费流量
  • 湖南土特产销售网网站建设制作dede投票类网站源码
  • 如何在外管局网站做延期收汇鲁班设计远程工作
  • 贸易公司寮步网站建设哪家好信息流广告案例
  • 海外社交网站开发推广普通话的文章
  • 外贸如何建立网站企业网站的页面信息该如何排放
  • 义乌婚介网站建设杭州电商网站建设公司
  • 关于国家对网站建设临沂网站制作计划
  • 广州网站建设快速排名公众号怎么弄好看的模板
  • 企业网站设计seo中国电信网站备案流程
  • 贵州网站开发百度推广竞价排名
  • 福州网站建设模板网站建设目标有哪几个方面
  • 平邑网站建设龙岩seo外包公司
  • vs做的网站排版错位国外的跨境电商平台有哪些
  • 打开网站很慢wordpress m1 cms
  • 专业制作假行驶证nginx wordpress优化
  • 惠州 光电 网站上线优秀网站案例
  • app网站开发后台处理数据网站建设成本
  • 广州犀牛云网站建设贵州省水利建设管理总站网站
  • 长沙市建设厅官方网站织梦与wordpress