cpp easy sql简介
- 将sql语句与代码分离解耦,存放于xml配置文件中
- 用逻辑标签控制SQL的拼接
- 查询的结果集与C++对象自动映射
实现
- cpp_xml.py 将xml定义的sql语句转成c++代码
- sql_handler.h 定义了两组执行sql、获取结果的接口。分别是ColumnIndexSqlHandler通过index获取结果、ColumnLabelSqlHandler通过字段名获取结果。
- cpp_sql.h 利用mysql-connection-c++实现了ColumnLabelSqlHandler接口
- c_sql 利用mysql-connection-c 实现了ColumnIndexSqlHandler接口
安装依赖
安装mysql
yum install -y mariadb-server mariadb
安装mysql-connector-c++
wget https://dev.mysql.com/get/Downloads/Connector-C++/mysql-connector-c++-1.1.9-linux-el7-x86-64bit.rpm
rpm -Uvh mysql-connector-c++-1.1.9-linux-el7-x86-64bit.rpm
使用
以查询下面这个user_info表为例:
CREATE TABLE `user_info` (
`user_id` int(11) AUTO_INCREMENT PRIMARY KEY,
`name` varchar(50) NOT NULL,
`passwd` varchar(50) NOT NULL,
`state_id` int(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 定义xml
<?xml version="1.0" encoding="UTF-8"?>
<mapper namespace="get_user">
<!-- 传入参数用于拼接sql -->
<!-- name应和 sql 表中的字段同名 -->
<GetUserInfoParam>
<field name="name" type="string"