C语言操作mysql预处理的封装
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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
“亿万富豪找回丢失 25 年儿子”,格灵深瞳自研人脸对比算法立大功
近日,“亿万富豪找回丢失 25 年儿子”相关话题引发全网关注。 25 年前,河北邢台几个月大的男婴解清帅被人偷走,其父亲解克锋悬赏百万寻子。12 月 1 日,在警方的帮助下,解克锋与失散 25 年的儿子解清帅在老家河北邢台相认。 据介绍,此番寻子成功源于河北邯郸一名男孩人脸识别比对成功。12 月 3 日,人工智能科技公司“北京格灵深瞳信息技术股份有限公司”发布微博称,此次解克锋寻子成功背后的人脸比对算法正是出自该公司。 格灵深瞳在微博写道:“2023年11月,河北‘亿万富豪’解克锋在警方的帮助下,找到了失散25年的儿子解清帅,至此结束了历时25年的漫长寻亲路。近日,在公安人员的见证下,一家人得以相认重聚。亲人团聚的背后,是科技的力量在发挥作用,格灵深瞳自主研发的‘跨年龄同亲缘人脸比对算法’功不可没。” 该公司在视频中解释称,“大部分被拐儿童都是在小时候就与亲人失散,随着岁月流逝,其相貌早已发生了翻天覆地的变化,这给警方的排查带来很大的困难。基于遗传关系,亲属之间的人脸特征相似性会相对较高,利用这一规律,格灵深瞳的‘跨年龄同亲缘人脸比对算法’会筛选出相关性较高的疑似者,进行赋分排名,大幅...
- 下一篇
.NET8极致性能优化AOT
前言 .NET8对于性能的优化是方方面面的,所以AOT预编译机器码也是不例外的。本篇来看下对于AOT的优化。 概述 首先要明确一个概念,.NET里面的AOT它是原生的。什么意思呢?也就是说通过ILC编译器(AOT编译器,参考:.Net 7 新编译器 ILC 简析)编译出来的代码是各个平台上可以直接运行的二进制代码。比如MacOS的二进制,Linux二进制等等。所以称之为原生。 C#源码被ILC编译之后,生成了一个完全原生态代码的可执行文件。在执行的时候不需要JIT来编译任何东西,因为JIT已经在ILC里面被充分利用过了。实际上AOT里面也没有包含JIT。那么它如何优化呢?只能是在ILC里面调用JIT的时候了。所以它这个优化依然依靠JIT。.NET8里面优化AOT的一个典型的例子,就是ASP.NET应用程序在使用AOT的时候表现不错,同时也降低了总成本。 在.NET8里面优化AOT的一个重要的目标就是减少AOT可执行文件的大小,关于这点的效果。我们现在就可以看到 下面创建一个控制台应用程序 dotnet new console -o nativeaotexample -f net7.0 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6