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应用的 ...
最新文章
- 图解深度学习(图灵出品)
- 一名作曲专业毕业生的安全架构师之路
- LevelDB (1)概述
- java.lang.Object错误
- 记录一下自己的VScode插件
- 计算机考试单招考试面试,单招计算机面试题.docx
- Nagios 监控 SNMP 温度计
- python代码命令行tab补齐_超简python命令行tab一键补全方法
- 服务器中W3SVC1文件夹的文件,完美解决IIS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别...
- win7计算机管理没有用户模块,Win7系统安装“ipx协议”提示“找不到相应的模块”如何解决...
- 历年奥斯卡获奖影片(1927—2015)
- no properties discovered to create BeanSerializer 问题解决
- 手机开发APP整体界面设计工具之墨刀---没用过就知道它很牛掰
- 计算机基础与应用说课ppt课件,广东省“XX杯”说课大赛计算机应用基础类一等奖作品:PPT写字动画的制作现场说课课件.ppt...
- win7家庭版开机登录画面多了一个管理员的账户名
- 副总经理(技术类)+技术总监都做些什么
- Android iOS APPUI设计规范实例(详细的UI设计方法)
- 直播带货后:提升售后服务、复盘直播数据
- android sex games app,Beginning Android Games 2nd Edition
- Codeforces 91A Newspaper Headline