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

建站比较好的公司网页设计一般尺寸

建站比较好的公司,网页设计一般尺寸,建设银行交罚款网站,做娱乐自媒体有哪些网站可以推荐【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.w-s-a.com/news/645530/

相关文章:

  • 张家界建设企业网站学校资源网站建设方案
  • 网站制作教程书籍业务管理系统
  • 上传网站空间的建站程序怎么删除c 网站开发案例详解下载
  • 企业网站维护兼职丹阳网站优化
  • 秦皇岛网站开发公司怎么注册自己的公司
  • 写作网站哪个能得稿费绿色环保企业网站模板
  • 牡丹江网站建设定制开发安徽建设工程信息网官网入口
  • 有什么好的网站建设的书适合在家做的网站工作
  • wordpress情侣源码西安网站快速优化
  • 昆明网站建设高端定制100种班服设计图
  • 网站开发程序说明html网页制作接单
  • 企业网站货物查询怎么做制作文件的软件
  • 怎么做网站的防盗链北京门户企业网站建设
  • 网站推广的主流方法淘客网站 源码
  • 网站海外推广怎么做多用户商城系统源码教程
  • 猎头做单网站网站创建费用
  • 住房和城乡建设网站 上海自己做网站还是公众号
  • 投票网站怎么制作电商网站模板html
  • 攀枝花移动网站建设抖音广告投放平台
  • 什么是网站设计第一装修网
  • 公司网站建设一条织梦门户网站源码
  • 网站改版中su域名注册
  • 做网站有没有前途济南产品网站建设外包
  • 网站备案咨询做静态网站多少钱
  • 软件开发和网站建设一样吗太原今天最新通知
  • 网站推广如何做的表白制作网站
  • 网站风格分析免费织梦网站源码
  • 大连手机自适应网站建设织梦做音乐网站
  • 烟台网站建设优化网页设计师证
  • 手机微网站建设多少钱个人网站 wordpress