QSqlQuery直接使用sql语句与采用bindValue的比较
来源:互联网 发布:软件测试职位描述 编辑:程序博客网 时间:2024/05/19 21:01
在使用QSqlQuery执行SQL语句时,发现有两种方式:
1.直接执行SQL语句
QString bookName; //书名QString strSql("SELECT * FROM books WHERE name=%1").arg(bookName); //组装完整的Sql语句
QSqlQuery query(strSql);
if(!query.exec())
{
QDebug() << __FILE__ << __LINE__ << query.lastError.text();
}
while (query.next()) {
int id = query.value(0).toInt();
...
doSomething(id);
}
2.采用值绑定(bindValue)的方式
QSqlQuery query;
QString bookName;
query.prepare("SELECT * FROM books WHERE name=:name");
query.bindValue(":name", bookName);
if(!query.exec())
{
QDebug() << __FILE__ << __LINE__ << query.lastError.text();
}
推荐使用第二种方式,理由如下:
1.有效防止Sql注入,保证Sql语句的原始意义不发生变化.
2.在字符串中含有特殊字符(如:单引号,中括号等)时,能对其处理.
3.在执行多条相同数据类型操作(Sql原语相同,数据不同)时,减少Sql的预编译次数,优化Sql执行效率.
4.可读性强.
0 0
- QSqlQuery直接使用sql语句与采用bindValue的比较
- Qt Sql bindValue与%
- QT连接SQL(1) QSQLQuery prepare and bindValue
- 关于Qt使用QSqlQuery执行sql语句时出现out of memory的问题
- QSqlQuery执行多条Sql语句的方法
- 关于拼sql语句执行与直接执行存储过程的效率比较
- access采用sql语句与sql的区别
- 直接使用SQL语句的隐患
- QSqlQuery的使用
- qt之QSqlQuery类执行SQL语句
- QSqlQuery exec执行SQL语句失败
- mysql学习(4):SQL语句的使用,以及与HiveSQL语句的比较
- hibernate 直接使用 sql 语句
- 使用sql语句直接生成dataset做为报表的数据源!
- no macthing function to call for QSqlQuery::bindValue()
- 采用p6spy显示Hibernate的SQL语句
- 采用拼接SQL语句的坏处
- 十五、Qt数据库 之 利用QSqlQuery类执行SQL语句
- HDU 4135 Co-prime(容斥原理)
- scala 读取网络资源
- 将excel转成pdf有哪些方法
- js调用新浪天气预报的方法
- Linux文件系统以及目录结构简介
- QSqlQuery直接使用sql语句与采用bindValue的比较
- 编译Caffe-Win错误集锦
- 算法:Construct Binary Tree from Preorder and Inorder Traversal
- OpenCV3.1中读写图像与读写像素
- unity打包ios过大,ios压缩技巧
- 如何获取百度地图API的密钥以及调用百度地图api
- php-fpm 启动脚本
- 数据结构实验之链表五:单链表的拆分
- 用redis轻松实现秒杀系统