美文网首页
sql语句拼接

sql语句拼接

作者: 肖旭晖 | 来源:发表于2020-09-09 10:01 被阅读0次

1.拼接字段

#pragma mark - 拼接sql语句
-(NSString *)sql_keys:(NSArray *)attributes{
    if (attributes.count <= 0) {
        return nil;
    }
    
    NSMutableString *keys = [NSMutableString string];
    int sum = 0;
    [keys appendString:@"("];
    for (NSString *key in attributes) {
        sum += 1;
        if (sum < attributes.count) {
            [keys appendFormat:@"%@,",key];
        }else{
            [keys appendFormat:@"%@",key];
        }
    }
    [keys appendString:@")"];
    return keys;
}

2.拼接占位符

-(NSString *)sql_values:(NSArray *)attributes{
    
    if (attributes.count <= 0) {
        return nil;
    }
    
    NSMutableString *values = [NSMutableString string];
    [values appendString:@"("];
    for (int i = 0; i < attributes.count; i++) {
        if (i < attributes.count-1) {
            [values appendFormat:@"?,"];
        }else{
            [values appendFormat:@"?"];
        }
    }
    [values appendString:@")"];
    return values;
}

3.拼接sql

-(NSString *)sqls:(NSArray *)attributes{
    
    if (attributes.count <= 0) {
        return nil;
    }
    
    NSMutableString *sql = [NSMutableString string];
    NSString *keys   = [self sql_keys:attributes];
    NSString *values = [self sql_values:attributes];

    [sql appendString:keys];
    [sql appendString:@" values "];
    [sql appendString:values];

    NSLog(@"sql ============== %@",sql);
    return sql;
}

4.全语句拼接

-(NSString *)insertTable:(NSString *)tableName attributes:(NSArray *)attributes{
    
    NSString *message = [NSString stringWithFormat:@"%@ %@ 表名不能为空",NSStringFromClass([self class]),NSStringFromSelector(_cmd)];
    NSAssert(tableName, message);
    
    if (!tableName || tableName.length <= 0) {
        return nil;
    }
    
    if (!attributes || attributes.count <= 0) {
        return nil;
    }
   
    NSString *sql = [NSString stringWithFormat:@"INSERT OR REPLACE INTO %@ %@",tableName,[self sqls:attributes]];
    return sql;
}

5.来吧展示


    
NSArray *attributes = @[@"uid",@"age",@"name",@"avatar",@"gender"];
NSString *sql = [self insertTable:tb_base_users attributes:attributes];

sql  ===== INSERT OR REPLACE INTO  (uid, age, name, avatar,gender) values (?,?,?,?,?)

相关文章

  • Mybatis--动态SQL(if,where,trim)

    Mybatis框架的动态SQL技术是一种根据特定条件动态拼接SQL语句的功能,作用是为了解决拼接SQL语句字符串的...

  • sql语句拼接

    1.拼接字段 2.拼接占位符 3.拼接sql 4.全语句拼接 5.来吧展示

  • JDBC

    JDBC JDBC编程步骤 JDBCUtils sql注入解决了sql攻击(拼接)statment把sql语句发送...

  • YII2安全之SQL注入和XSS攻击

    SQL注入 疑问:SQL语句拼接变量 //直接把获取的$id代入(有问题)$sql...

  • 搜索

    直接sql查询 用sql语句like查询,复杂的用sql语句拼接。 视图和存储过程查询 简化程序,提高执行效率,维...

  • pymssql[2]查询结果中文乱码处理

    sql语句sql语句里写得太复杂。比如:有使用多表联查,字段拼接 乱码的地方加上 先编码成SQL server支持...

  • python拼接 select in语句

    拼接sql语句时,有时候参数是一个列表,想实现select in语句的效果,比如sql语句:select * fr...

  • MyBatis动态SQL

    动态 SQL 是 MyBatis 的强大特性之一。根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记...

  • MyBatis传参数

    传递业务参数给sql语句,可用于动态拼接sql语句。在xml中的select标签中,参数节点parameterTy...

  • SQL中字符串拼接

    SQL中字符串拼接 1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysq...

网友评论

      本文标题:sql语句拼接

      本文链接:https://www.haomeiwen.com/subject/ggteektx.html