您的位置:  首页 > 技术杂谈 > 正文

C语言操作mysql预处理的封装

2023-12-04 17:00 https://my.oschina.net/u/6989075/blog/10315874 solider12 次阅读 条评论

mysql预处理的优点在于

1.安全性高.预处理变量用占位符?表示,与sql语句是分别传递给服务器,安全性相对比较高.

2.占用流量低.在sql语句已经发送的情况下,只要发送绑定变量的不同值即可.

然而mysql预处理也有一个很大的缺点,就是大量变量绑定的代码,可读性极差,冗余重复代码很多.

我们思考预处理如何做到扬长避短,将冗余代码不放在mysql预处理封装的代码中,而是放在结构体初始化的文件中.这样在结构体初始化的繁琐要好过预处理时的繁琐.

然而结构体的成员变量如何与预处理的bind关联呢?

答案无非是数组.输入数组关联预处理的绑定参数,输出数组关联预处理的绑定结果.

数组的数据来源是结构体,结构体如何将成员变量交接给数组呢?

于是我们冥思苦想发现这个预处理的封装是系统性的工程.需要借助第三方的一些代码完成任务.比如想要把结构体成员对象存取,最好的办法不外乎是hashmap,对输出结果的返回最通用的结构体不外乎是json.因此需要引入hashmap和json.

这样还需要设计一个场景,存取结构体成员,于是我们想到了数据表的crud通用操作.接下来就是设计各个crud的函数用hashmap存取结构体变量.大致流程如此.

代码参考gtee开源仓库https://gitee.com/solider12/lazy-cats-code-warehouse/tree/master

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接