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数据库相关推荐

  1. Poco库使用:操作SQLite数据库

    Sqlite是在工程项目中使用比较多的小型数据库.由于其非常小巧且占用资源低,深受开发者喜欢.这里就介绍一下如何通过Poco框架操作SQLite数据库.这里假设你已经完整编译了Poco库,如果还没有编 ...

  2. python读数据库的通信协议是,Python操作SQLite数据库过程解析

    SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统. 不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分.所以主要的通信协 ...

  3. PC软件开发技术之三:C#操作SQLite数据库

    我们在开发应用是经常会需要用到一些数据的存储,存储的方式有多种,使用数据库是一种比较受大家欢迎的方式.但是对于一些小型的应用,如一些移动APP,通常的数据库过于庞大,而轻便的SQLite则能解决这一问 ...

  4. python数据库sqlite3_Python 操作 SQLite 数据库

    本文字数:3808 字 阅读本文大概需要:10 分钟 写在之前 SQLite 是一个小型的关系型数据库,它最大的特点在于不需要单独的服务.零配置.我们在之前讲过的两个数据库,不管是 MySQL 还是 ...

  5. C#操作SQLite数据库

    我们在开发应用是经常会需要用到一些数据的存储,存储的方式有多种,使用数据库是一种比较受大家欢迎的方式.但是对于一些小型的应用,如一些移动APP,通常的数据库过于庞大,而轻便的SQLite则能解决这一问 ...

  6. python数据库操作sqlite_Python3操作SQLite数据库

    Python3操作SQLite数据库 SQLite SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目 ...

  7. python数据存储系列教程——python操作sqlite数据库:连接、增删查改、指令执行

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python操作sqlite数据库 sqlite数据库以.db格式的文件形式存在,所以不需要安装驱动和应用系统,在标准库中也集成了sqlite ...

  8. python对sqlite增删改查_Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】...

    本文实例讲述了python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的 ...

  9. python操作sqlite数据库

    SQLite数据库是一款轻量级的数据库,无服务器.零配置.事务性的SQL数据库引擎.SQLite是世界上最广泛部署的SQL数据库引擎,而且SQLite的源代码不受版权限制,是小型项目和简单web应用的 ...

最新文章

  1. 2021 年 5 月程序员工资统计,惨不忍睹。。。
  2. Day 02 你最爱的交通方式
  3. 《Ext JS权威指南》印出来了,大家很快就能拿到书了
  4. Java:Java编程实现导出二维码
  5. CSDN Markdown 博客如何设置插入代码背景颜色(设置成黑色)?
  6. 经典算法笔记:异常检测和推荐系统
  7. js 进阶篇 代码等级提升
  8. 表示我想你的代码java_如何编写可怕的Java代码?
  9. java 高级编程进阶_JAVA高级编程之hibernate进阶学习
  10. 【工具推荐】ADB IDEA
  11. python excelwriter保存路径_太赞!Python和Excel终于可以互通了
  12. WORD表格中文字显示不完整怎么办?
  13. centos 虚拟机 使用串口_在VMware虚拟机环境下安装CentOS 7操作系统
  14. 最小的linux内核代码,带你阅读linux内核源码:下载源码、编译内核并运行一个最小系统...
  15. 如何使用idea创建数据库表(源码)
  16. hive和oracle常用函数汇总及报错解决方法总结
  17. 百度指数-批量查询器
  18. 基于JQuery网页漂浮广告窗口Js详解
  19. 首次提交代码至github(转载)
  20. 为什么深圳成指关注度远远小于上证指数?

热门文章

  1. python+html实现前后端数据交互界面显示
  2. 计算机考研一志愿不满,【建议收藏】40所不歧视本科 保护一志愿院校 内含大量985/211!...
  3. unity3d 模型从上到下出现(shader)
  4. 一文带你了解APS生产计划排程系统
  5. 机器学习_深度学习毕设题目汇总——场景
  6. linux 云主机 管理软件,常用6款云服务器管理软件(上)
  7. iOS操作系统的层次架构和相关服务
  8. Rancher安装部署
  9. Survey on Human pose estimation
  10. Unity 实现回血效果