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

做英文网站要用什么字体南宁网站推广大全

做英文网站要用什么字体,南宁网站推广大全,浦东网站开发培训班,wordpress网站描述插件【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 对所有关系数据的操作都只有CRUD#xff0c;采用Go 的接口interface{}重构代码…【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 对所有关系数据的操作都只有CRUD采用Go 的接口interface{}重构代码代码更简洁、易维护。 1 创建接口声明包 在 REST2sql目录下创建一个dbif的子目录在此子目录下创建dbif.go包文件组织结构如下图 接口包代码如下 // 数据库接口定义 package dbif// 数据库操作接口 type CRUD interface {InsertData(string) string //插入返回影响行数json字符串SelectData(string) string //查询 返回查询结果json字符串UpdateData(string) string //更新返回影响行数json字符串DeleteData(string) string //删除返回影响行数json字符串IsResource(string) bool //在系统对象表总查找资源是否有效用户表或视图 } 2 dboracle包重构 2.1 引入接口包dbif import (database/sql/driverencoding/jsoniologrest2sql/configdb rest2sql/dbif //数据库接口包stringsgo_ora github.com/sijms/go-ora/v2 // 1 go get github.com/sijms/go-ora/v2 ) 2.2 声明CRUD4Oracle结构体 作为接口函数的接收者或者说接口绑定对象。 type CRUD4Oracle struct {//Oracle的CRUD操作结构体 }2.3 创建New()构造函数 直接返回结构体指针。 func New() db.CRUD {//创建结构体CRUD4Oraclereturn CRUD4Oracle{} }2.4 实现接口的全部函数或方法 原来的CRUD函数加上接受者即可或者说绑定结构体 // delete func (crud *CRUD4Oracle) DeleteData(deleteSql string) string {} // update func (crud *CRUD4Oracle) UpdateData(updateSql string) string {} // insert func (crud *CRUD4Oracle) InsertData(insertSql string) string {} // select查询结果为json func (crud *CRUD4Oracle) SelectData(sqls string) string {}原来dothing包的资源检查函数 isRes( resName string) bool ,用接口重构不同数据库实现稍微不同。 // REST请求时检查资源是否有效 func (crud *CRUD4Oracle) IsResource(resName string) bool {icurd : New()resname : strings.ToUpper(resName)resSQL : select object_name from user_objects where object_type in (TABLE,VIEW) and object_name resname //执行数据库查询result : icurd.SelectData(resSQL)//检查数据库是否有此表if strings.Contains(result, resname) {return true} else {return false} }3 dbdm包重构 和oracle重构类似只有结构体和New() 不同 3.1 引入dbif包 import db rest2sql/dbif3.2 声明CRUD4Dm结构体 type CRUD4Dm struct {//Dm的CRUD操作结构体 }3.3 创建New()构造函数 func New() db.CRUD {//创建结构体CRUD4Dmreturn CRUD4Dm{} }3.4 实现接口的全部函数或方法 原来的CRUD函数加上接受者即可或者说绑定结构体 /* 往表插入数据 */ func (crud *CRUD4Dm) InsertData(insertSql string) string {} /* 删除表数据 */ func (crud *CRUD4Dm) DeleteData(deleteSql string) string {} /* 修改表数据 */ func (crud *CRUD4Dm) UpdateData(updateSql string) string {} /* 查询表数据 */ func (crud *CRUD4Dm) SelectData(sqlSelect string) string {}// REST请求时检查资源是否有效 func (crud *CRUD4Dm) IsResource(resName string) bool {icurd : New()resname : strings.ToUpper(resName)resSQL : select object_name from user_objects where object_type in (TABLE,VIEW) and object_name resname //执行数据库查询result : icurd.SelectData(resSQL)//检查数据库是否有此表if strings.Contains(result, resname) {return true} else {return false} }4 Dothing包的重构 4.1 引入接口和数据库包 // dothing project dothing.go package dothingimport (encoding/jsonfmtnet/httprest2sql/configdm rest2sql/dbdmdb rest2sql/dbifora rest2sql/dboraclestrings )4.2 声明接口全局变量 // 当前连接的数据库类型oracle var (DBType string config.Conf.DBType //数据库类型REST string config.Conf.REST //支持的RESTGET,POST,PUT,DELETESQL string config.Conf.SQL //支持的SQL:SELECT,INSERT,UPDATE,DELETE ) // 声明CRUD操作的全局接口变量 var Icrud db.CRUD4.3 创建全局变量构造函数createDBType // 根据数据库类型创建crud对象 func createDBType() {switch DBType {case oracle:Icrud ora.New()case dm:// 达梦Icrud dm.New()default:// 不支持的数据库} }// 调用接口函数 // 根据请求类型参数执行不同的操作 func DoThing(w http.ResponseWriter, req map[string]interface{}) {//创建数据库接口createDBType()w.Write([]byte(\n))//请求类型 REST or SQLswitch req[RESTorSQL] {case REST://REST请求方法过滤sMethod : strings.ToUpper(req[Method].(string))if !strings.Contains(REST, sMethod) {w.Write([]byte(不准许的REST请求检查配置文件config.json的REST项。))return}//执行REST请求doREST(w, req)case SQL://SQL过滤resSQL : req[ResName].(string)sqlToUpper : strings.ToUpper(resSQL)sql6 : sqlToUpper[:6]if !strings.Contains(SQL, sql6) {w.Write([]byte(不准许的SQL请求检查配置文件config.json的SQL项。))return}//执行SQLdoSQL(w, req)} } 4.4 检查资源是否有效的调用 //资源名resName : req[ResName].(string)// 检查是否有效资源if !Icrud.IsResource(resName) {//if !isRes(resName) {w.Write([]byte(\nerror:无效资源 resName))return} else {//w.Write([]byte(\nresName: resName))}4.5 doSQL重构 重构了switch case // 根据请求参数执行不同的操作 func doSQL(w http.ResponseWriter, req map[string]interface{}) {//w.Write([]byte(\ndoSQL()\n))w.Write([]byte(\Response\:))//资源名sql语句resSQL : req[ResName].(string)fmt.Println(SQL://, resSQL)sqlToUpper : strings.ToUpper(resSQL)sql6 : sqlToUpper[:6]var result stringswitch sql6 {case SELECT:result Icrud.SelectData(resSQL)case INSERT:result Icrud.InsertData(resSQL)case UPDATE:result Icrud.UpdateData(resSQL)case DELETE:result Icrud.DeleteData(resSQL)default:// 过滤sql 只能执行 SELECT INSERT UPDATE DELETEresult \只能执行 SELECT INSERT UPDATE DELETE\}fmt.Println(SQL://, resSQL)w.Write([]byte(result))w.Write([]byte(})) }4.6 REST4种请求的重构 // get //执行 sql并返回 json 结果fmt.Println(REST://, selectSQL)result : Icrud.SelectData(selectSQL) // post //执行 insertSQL 并返回 json 结果fmt.Println(REST://:, insertSQL)result : Icrud.InsertData(insertSQL) // put //执行 insertSQL 并返回 json 结果fmt.Println(REST://, updateSQL)result : Icrud.UpdateData(updateSQL) // delete //执行 sql并返回 json 结果fmt.Println(REST://, deleteSQL)result : Icrud.DeleteData(deleteSQL)5 测试结果 总体代码组织 Oracle OK 达梦dm OK 控制台执行日志 浏览器请求及返回 《06 完》
http://www.hkea.cn/news/14385154/

相关文章:

  • 潍坊建设银行招聘网站南宁网站运营优化平台
  • 南宁做网站设计方案网站开发摊销多少年
  • 爱站数据官网企业网站系统详细设计
  • 购物网站怎么做优化代理注册公司行情
  • 网站流量查询站长之家培训网址
  • 网站建设应该考虑哪些问题怎么才能百度到自己的网站
  • 诸暨制作网站的公司有哪些领地免费网站开发
  • 徐州哪家公司做网站水平好在线设计闪字图片
  • wordpress 延时加载jsseo排名优化怎么样
  • 网站建设要多长时间末年人免费观看网站
  • 网站 流程手机免费制图软件
  • 定位网站关键词设计研发网站
  • 网站开发发展趋势2018新网站建设运营年计划
  • 如何查看网站的更新频率智能网站建设步骤
  • 湘潭高端网站建设网站企业快速备案流程
  • 汕头网站建设推广价格国家建设部网站平台
  • 怎么自己在微信上做网站兰州1万人阳性
  • 网站建设好后打开是目录文件中英企业网站
  • 秦皇岛网站建设系统推荐如何在百度上发布自己的广告
  • 西安购物网站建设河南郑州做网站h汉狮
  • 商品定制平台网站成都的汽车网站建设
  • 功能性的网站归档系统中国建设银行中国网站
  • 互联网网站建设方案重庆教育建设有限公司网站首页
  • 商城网站哪个公司做的好处2023企业所得税300万以上
  • 购物网站用html怎么做自己做个网站好还是做别人会员好
  • 网站项目需求分析上海省住房与城乡建设厅网站
  • 免备案网站建站企业手机网站建设策划
  • 网站维护知识亚马逊网站托管怎么做
  • wordpress 前台关闭关键词优化案例
  • 百度小说排行榜2021重庆seo快速优化