奇偶发挥城市来考察时考虑非农村

//
//  TableManager.m
//  FMDB
//
//  Created by 朱逸 on 16/7/11.
//  Copyright ? 2016年 朱逸. All rights reserved.
//  可以使用Navicat管理数据库

#import "TableManager.h"

@interface TableManager ()

@property (nonatomic, copy)NSString *sqlitePath;

@end

@implementation TableManager

+ (TableManager *)defaultManager{
    static TableManager *manager = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        manager = [[TableManager alloc] init];
    });
    return manager;
}

- (void)creatTable{
    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"user"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL tag = [fileManager fileExistsAtPath:path isDirectory:NULL];
    if (!tag) {
        [fileManager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:NULL];
    }
    NSString *tablePath = [path stringByAppendingPathComponent:@"app.sqlite"];
    self.sqlitePath = tablePath;
    FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:tablePath];
    [queue inDatabase:^(FMDatabase *db) {
        BOOL result1 = [db executeUpdate:@"create table if not exists singer (name text,age integer)"];
        if (result1) {
            NSLog(@"创表成功1");
        } else {
            NSLog(@"创表失败1");
        }
    }];
}
/*
 * 增
 */
- (void)add{
    FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:self.sqlitePath];
    [queue inDatabase:^(FMDatabase *db) {
        for (int i = 0; i < 100; i++) {
            NSString *name = [NSString stringWithFormat:@"name%d",i];
            int age = arc4random() % 50 + 20;
            BOOL tag = [db executeUpdate:@"insert into singer (name, age) values (?,?)",name,[NSNumber numberWithInt:age]];
            if (tag) {
                NSLog(@"插入成功");
            }
        }
    }];
}
/*
 * 删
 */
- (void)remove{
    FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:self.sqlitePath];
    [queue inDatabase:^(FMDatabase *db) {
        [db executeUpdate:@"delete from singer where age < 50;"];
    }];
}
/*
 * 查
 */
- (void)query{
    FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:self.sqlitePath];
    [queue inDatabase:^(FMDatabase *db) {
        FMResultSet * set = [db executeQuery:@"select * from singer order by age desc"];
        while (set.next) {
            NSLog(@"%@--%d",[set stringForColumn:@"name"],[set intForColumn:@"age"]);
        }
    }];
}
/*
 * 改
 */
- (void)change{
    FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:self.sqlitePath];
    [queue inDatabase:^(FMDatabase *db) {
        [db executeUpdate:@"UPDATE singer set age = ? where name = ?",[NSNumber numberWithInt:30],@"name3"];
    }];
}
/*
 * 添加字段
 */
- (void)addColom:(NSString *)str{
    FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:self.sqlitePath];
    [queue inDatabase:^(FMDatabase *db) {
        BOOL tag = [db columnExists:str inTableWithName:@"singer"];
        if (tag) {
            NSLog(@"存在");
        } else {
            NSString *sql = [NSString stringWithFormat:@"alter table %@ add column %@",@"singer",str];
            BOOL s = [db executeUpdate:sql];
            if (s) {
                NSLog(@"成功");
            }
        }
    }];
}
@end
时间: 2024-12-16 19:28:04

奇偶发挥城市来考察时考虑非农村的相关文章

设置开机启动时指定非ROOT用户执行相应的脚本

1 [[email protected] sm01]# vim /etc/rc.d/rc.local 2 3 #!/bin/sh 4 # 5 # This script will be executed *after* all the other init scripts. 6 # You can put your own initialization stuff in here if you don't 7 # want to do the full Sys V style init stuf

采用Asp.Net的Forms身份验证时,非持久Cookie的过期时间会自动扩展

问题描述 之前没有使用Forms身份验证时,如果在登陆过程中把HttpOnly的Cookie过期时间设为半个小时,总会收到很多用户的抱怨,说登陆一会就过期了. 所以总是会把Cookie过期时间设的长一些,比如两个小时甚至一天,这样就能保证在登陆时设置一次Cookie,用户可以操作很长时间也不过期. 虽然也可以在每次用户请求页面时检查Cookie的过期时间并自动扩展,但未免过于麻烦,不如一次设大点来的简单. 偶然发现 今天在使用Forms身份验证编写<AppBox-基于ExtAspNet的企业通用

Struts(二十四):短路验证&amp;重写实现转换验证失败时短路&amp;非字段验证

短路验证: 若对一个字段使用多个验证器,默认情况下会执行所有的验证.若希望前面的验证器没有通过,后面的验证器就不再执行,可以使用短路验证. 1.如下拦截器,如果输入字符串,提交表单后,默认是会出现三个错误:字段转换失败.conversion验证失败.取值范围失败. <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds

关于在left join的on子句中限制左边表的取值时出现非期望的结果

使用的SQL大概是这样的: select * from A left join B on A.id=B.id and A.id>10; --错误的使用 我们期望的结果集应该是 A中的id>10,但是实际上A.id>10 这个限制条件并没有起作用. 应该改成如下的这种形式: select * from A left join B on A.id=B.id where A.id>10;--正确的使用 这是在oracle的官方文档中找到的相关说明: left outer joinThe

一致代码段和非一致代码段

最近在自己动手写操作系统,计算机其实是一个非常复杂的系统.其中包含了很多历史性的问题,让人感到生僻难懂.在CSDN上看到一篇关于一致代码段和非一致代码段的文章,非常好,收藏起来. 原文链接:http://blog.csdn.net/feijj2002_/article/details/4597174 之所以出现这个定义是因为系统要安全:内核要和用户程序分开..内核一定要安全.不能被用户程序干涉.但是有时候用户程序也需要读取内核的某些数据,怎么办呢?操作系统就引入了访问特权等级(0-3)的机制.

3D实景、720全景加盟,-全景智慧城市

VR全景智慧城市,多年从事三维全景技术应用的互联网公司,我们利用计算机图形学.多媒体.人工智能和计算机网络技术,深入研发和推广虚拟现实VR技术的行业应用.我们以优质的服务.国际领先的技术团队,为您定制全方位解决方案.720全景技术是基于真实场景的虚拟现实技术,可以让你从全方位的视角观察现场实景,身临其境的感觉是平面照片和三维重建都无法做到的.我们利用三维全景虚拟现实技术,制作成交互式720度全景虚拟漫游让你的产品更好地通过网络技术展现给您的客户,是提升您品牌形象的最佳呈现方式. 1)大众化电脑均

VR全景爆发互联网+,新颖平台-全景智慧城市

在互联网大趋势下,实体商家都迫切需要一个好的线上广告宣传方式,来推广自己的店铺及产品,传统的线上宣传方式已经无法满足消费者需求,360度全景展示能更真实直观的把商家展示给用户消费者,给商家带来客流及收益,据不完全统计河南省实体商户最少不低于几百万家,市场前景非常广阔.在互联网时代的今天,用户体验至上,360全景作为一个新型的科技展示技术,通过新颖的广告方式更能吸引用户眼球,足不出户,观看现场实景,达到沉浸式体验. 消费者视角痛点:比如酒店消费行业,很多消费者在预订酒店过程中,都遇到过这样的场景:

正则基础之——贪婪与非贪婪模式

转载自:http://blog.csdn.net/lxcnn/article/details/4756030 1        概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为,贪婪模式在整个表达式匹配成功的前提下,尽可能多的匹配,而非贪婪模式在整个表达式匹配成功的前提下,尽可能少的匹配.非贪婪模式只被部分NFA引擎所支持. 属于贪婪模式的量词,也叫做匹配优先量词,包括: “{m,n}”.“{m,}”.“?”.“*”和“+”. 在一些使用NFA引擎的语言中,在匹配优先量词后加上“?”

关系型数据库与非关系型数据库

关系型数据库与非关系型数据库 自1970年,埃德加·科德提出关系模型之后,关系数据库便开始出现,经过了40多年的演化,如今的关系型数据库具备了强大的存储.维护.查询数据的能力.但在关系数据库日益强大的时候,人们发现,在这个信息爆炸的"大数据"时代,关系型数据库遇到了性能方面的瓶颈,面对一个表中上亿条的数据,SQL语句在大数据的查询方面效率欠佳.我们应该知道,往往添加了越多的约束的技术,在一定程度上定会拖延其效率. 在1998年,Carlo Strozzi提出NOSQL的概念,指的是他开