C++ 数据成员的绑定

#include <iostream>
using namespace std;

typedef int Len;

class A
{
public:
	/* 对成员函数本体的分析,会直到整个类的声明都出现了才开始, 即直至class声明的右大括号出现才开始。
	   但是对于成员函数的参数列表不需等到整个类的声明都出现。
	   防御方法: (1) 将所有的数据成员都放在class声明起头处
	             (2) 把所有的inline函数都放到class声明外
	*/
	void print(Len a = 0){cout<<sizeof(a);}
	void print1(){cout<<sizeof(Len);} 
	
	void print2(){cout<<sizeof(a);}
	

	typedef double Len;
	private:
	Len a;
		
};


int main()
{
    A a;
	a.print(); ///4
	a.print1();//8
	a.print2();//8
	
    return 0;
}

### C++ 中使用 MySQL 插入数据并绑定变量 在 C++ 应用程序中通过 MySQL Connector/C++ 使用预处理语句来插入带有绑定参数的数据是一种安全有效的方法。这种方法可以防止 SQL 注入攻击,并提高查询性能。 #### 创建连接池数据源对象 为了建立到数据库的连接,通常会创建一个 `MysqlConnectionPoolDataSource` 对象[^1]: ```cpp sql::mysql::MySQL_Connection *conn; sql::mysql::MySQL_Driver *driver; std::unique_ptr<sql::Connection> sqlConn; // 获取驱动实例 driver = sql::mysql::get_mysql_driver_instance(); // 建立连接 sqlConn.reset(driver->connect("tcp://127.0.0.1:3306", "username", "password")); ``` #### 准备带占位符的SQL语句 定义一条包含问号作为占位符的 INSERT 语句,这些占位符将在执行前被实际值替换: ```cpp std::string query = "INSERT INTO table_name (column1, column2) VALUES (?, ?)"; ``` #### 执行预处理语句并与变量关联 创建 PreparedStatement 实例并将输入参数绑定至相应的占位符位置: ```cpp std::unique_ptr<sql::PreparedStatement> pstmt(sqlConn->prepareStatement(query)); pstmt->setString(1, "value_for_column1"); pstmt->setInt(2, value_for_column2); int affectedRows = pstmt->executeUpdate(); // 返回受影响行数 if (affectedRows != 1){ throw std::runtime_error("Failed to insert row into the database."); } ``` 上述代码展示了如何设置字符串类型的第一个参数以及整型的第二个参数给对应的列。对于其他类型的数据成员,可以根据需要调用不同的 setter 方法(例如 setDouble(), setDate() 等)。最后,调用 executeUpdate 来提交更改到服务器端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值