soci连接mysql_使用soci操作数据库

本文介绍了如何使用C++库soci连接并操作SQLite3数据库,包括创建表、插入、删除、更新和查询数据,以及事务处理和ORM(对象关系映射)的示例。
摘要由CSDN通过智能技术生成

基本操作

#include #include #include #include #include "soci.h"

// 使用soci访问sqlite3.

// 参考 http://blog.csdn.net/littlewhite1989/article/details/54691367

// soci官方文档test-sqlite3.cpp

// 创建表

static void CreateTable(soci::session& db) {

db << "CREATE TABLE IF NOT EXISTS STUDENTS ("

"ID INTEGER PRIMARY KEY AUTOINCREMENT,"

"NAME VARCHAR(50) NOT NULL,"

"AGE INTEGER NOT NULL"

")";

}

// 插入数据

static void TestInsert(soci::session& db, const std::string& name, int age) {

// 2.直接执行语句,相当于调用sqlite3_exec(),使用soci::use来传递参数。

try {

db << "INSERT INTO STUDENTS(NAME, AGE) VALUES(:name, :age)", soci::use(name), soci::use(age);

} catch (const soci::soci_error& e) {

std::cout << e.what() << std::endl;

return;

}

}

// 删除数据

static void TestDelete(soci::session& db, const std::string& name) {

// 3.先prepare编译SQL语句,然后在执行。

soci::statement stmt = (db.prepare << "DELETE FROM STUDENTS WHERE NAME = :name", soci::use(name));

stmt.execute(true);

long long affected_rows = stmt.get_affected_rows();

std::cout << "Affected rows is " << affected_rows << "." << std::endl;

}

// 修改数据

static void TestUpdate(soci::session& db, const std::string& name, int age) {

try {

db << "UPDATE STUDENTS SET AGE = :age WHERE NAME = :name", soci::use(age), soci::use(name);

} catch (const soci::soci_error& e) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值