C++ 使用Poco库操作SQLite数据库
C++ 使用Poco库操作SQLite数据库
flyfish
文章目录
- C++ 使用Poco库操作SQLite数据库
- 数据库插入记录
- 数据库插入记录方式2
- 数据库插入记录方式3
- 更方便的数据库插入记录
- 创建表的方式
- 如果表存在,则删除表,再创建新表
- 如果表不存在则再创建表
- 查询单个字段
- 查询限制记录条数
- 查询多个字段
- 更新
数据库插入记录
#include <Poco/Data/Session.h>
#include <Poco/Data/SQLite/Connector.h>
#include <vector>
#include <iostream>class Student
{public:std::string name_;int age_;
};
typedef std::vector<Student> Students;int main(int argc, char** argv)
{Students ss;for(int i=0;i <10;i++){Student s;s.name_ = std::to_string(i);s.age_ = i+10;ss.push_back(s);}Poco::Data::SQLite::Connector::registerConnector();Poco::Data::Session session("SQLite", "example.db");session << "DROP TABLE IF EXISTS Student", Poco::Data::Keywords::now;session << "CREATE TABLE Student (Name VARCHAR(30), Age INTEGER(3))", Poco::Data::Keywords::now;for (auto& i :ss){Poco::Data::Statement insert(session);insert << "INSERT INTO Student VALUES(:Name, :Age)",Poco::Data::Keywords::use(i.name_),Poco::Data::Keywords::use(i.age_);insert.execute();}Poco::Data::SQLite::Connector::unregisterConnector();return 0;
}
数据库插入记录方式2
for (auto& i :ss){Poco::Data::Statement insert(session);insert << "INSERT INTO Student VALUES(:Name, :Age)",Poco::Data::Keywords::use(i.name_),Poco::Data::Keywords::use(i.age_), Poco::Data::Keywords::now;}
数据库插入记录方式3
for (auto& i :ss)
{Poco::Data::Statement insert(session);insert << "INSERT INTO Student VALUES(?, ?)",Poco::Data::Keywords::use(i.name_),Poco::Data::Keywords::use(i.age_), Poco::Data::Keywords::now;}
更方便的数据库插入记录
#include <Poco/Data/Session.h>
#include <Poco/Data/SQLite/Connector.h>
#include <vector>
#include <iostream>typedef Poco::Tuple<std::string, int> Student;
typedef std::vector<Student> Students;int main(int argc, char** argv)
{Students ss;for(int i=0;i <10;i++){Student s(std::to_string(i),i+10);ss.push_back(s);}Poco::Data::SQLite::Connector::registerConnector();Poco::Data::Session session("SQLite", "example.db");session << "DROP TABLE IF EXISTS Student", Poco::Data::Keywords::now;session << "CREATE TABLE Student (Name VARCHAR(30), Age INTEGER(3))", Poco::Data::Keywords::now;for (auto& i :ss){Poco::Data::Statement insert(session);insert << "INSERT INTO Student VALUES(?, ?)",Poco::Data::Keywords::use(i),Poco::Data::Keywords::now;}Poco::Data::SQLite::Connector::unregisterConnector();return 0;
}
创建表的方式
如果表存在,则删除表,再创建新表
session << "DROP TABLE IF EXISTS Student", Poco::Data::Keywords::now;
session << "CREATE TABLE Student (Name VARCHAR(30), Age INTEGER(3))", Poco::Data::Keywords::now;
如果表不存在则再创建表
session << "CREATE TABLE IF NOT EXISTS Student (Name VARCHAR(30), Age INTEGER(3))", Poco::Data::Keywords::now;
查询单个字段
std::vector<std::string> names;
session << "SELECT Name FROM Student",Poco::Data::Keywords::into(names),Poco::Data::Keywords::now;for (auto& i : names)std::cout << i << ' ';
查询限制记录条数
std::vector<std::string> names;
session << "SELECT Name FROM Student", Poco::Data::Keywords::into(names), Poco::Data::Keywords::limit(2), Poco::Data::Keywords::now;for (auto& i : names)std::cout << i << '\n';
查询多个字段
Students a;
session << "SELECT * FROM Student", Poco::Data::Keywords::into(a), Poco::Data::Keywords::now;for (auto& it : a)
{std::cout << "Name: " << it.get<0>() <<", Age: " << it.get<1>() <<std::endl;
}
更新
std::string age = "111";
std::string name = "0";
session << "update Student set Age = ? WHERE Name= ?", Poco::Data::Keywords::use(age),Poco::Data::Keywords::use(name),Poco::Data::Keywords::now;
C++ 使用Poco库操作SQLite数据库相关推荐
- Poco库使用:操作SQLite数据库
Sqlite是在工程项目中使用比较多的小型数据库.由于其非常小巧且占用资源低,深受开发者喜欢.这里就介绍一下如何通过Poco框架操作SQLite数据库.这里假设你已经完整编译了Poco库,如果还没有编 ...
- python读数据库的通信协议是,Python操作SQLite数据库过程解析
SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统. 不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分.所以主要的通信协 ...
- PC软件开发技术之三:C#操作SQLite数据库
我们在开发应用是经常会需要用到一些数据的存储,存储的方式有多种,使用数据库是一种比较受大家欢迎的方式.但是对于一些小型的应用,如一些移动APP,通常的数据库过于庞大,而轻便的SQLite则能解决这一问 ...
- python数据库sqlite3_Python 操作 SQLite 数据库
本文字数:3808 字 阅读本文大概需要:10 分钟 写在之前 SQLite 是一个小型的关系型数据库,它最大的特点在于不需要单独的服务.零配置.我们在之前讲过的两个数据库,不管是 MySQL 还是 ...
- C#操作SQLite数据库
我们在开发应用是经常会需要用到一些数据的存储,存储的方式有多种,使用数据库是一种比较受大家欢迎的方式.但是对于一些小型的应用,如一些移动APP,通常的数据库过于庞大,而轻便的SQLite则能解决这一问 ...
- python数据库操作sqlite_Python3操作SQLite数据库
Python3操作SQLite数据库 SQLite SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目 ...
- python数据存储系列教程——python操作sqlite数据库:连接、增删查改、指令执行
全栈工程师开发手册 (作者:栾鹏) python教程全解 python操作sqlite数据库 sqlite数据库以.db格式的文件形式存在,所以不需要安装驱动和应用系统,在标准库中也集成了sqlite ...
- python对sqlite增删改查_Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】...
本文实例讲述了python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的 ...
- python操作sqlite数据库
SQLite数据库是一款轻量级的数据库,无服务器.零配置.事务性的SQL数据库引擎.SQLite是世界上最广泛部署的SQL数据库引擎,而且SQLite的源代码不受版权限制,是小型项目和简单web应用的 ...
最新文章
- 2021 年 5 月程序员工资统计,惨不忍睹。。。
- Day 02 你最爱的交通方式
- 《Ext JS权威指南》印出来了,大家很快就能拿到书了
- Java:Java编程实现导出二维码
- CSDN Markdown 博客如何设置插入代码背景颜色(设置成黑色)?
- 经典算法笔记:异常检测和推荐系统
- js 进阶篇 代码等级提升
- 表示我想你的代码java_如何编写可怕的Java代码?
- java 高级编程进阶_JAVA高级编程之hibernate进阶学习
- 【工具推荐】ADB IDEA
- python excelwriter保存路径_太赞!Python和Excel终于可以互通了
- WORD表格中文字显示不完整怎么办?
- centos 虚拟机 使用串口_在VMware虚拟机环境下安装CentOS 7操作系统
- 最小的linux内核代码,带你阅读linux内核源码:下载源码、编译内核并运行一个最小系统...
- 如何使用idea创建数据库表(源码)
- hive和oracle常用函数汇总及报错解决方法总结
- 百度指数-批量查询器
- 基于JQuery网页漂浮广告窗口Js详解
- 首次提交代码至github(转载)
- 为什么深圳成指关注度远远小于上证指数?