Objective-C 使用MySQL数据库的教程
来源:互联网 发布:期货交易者软件怎么样 编辑:程序博客网 时间:2024/05/16 07:49
首先要确定系统里已经安装了mysql,我的mysql安装在/usr/local/mysql
新建一个工程,名字叫 mysqlTest
修 改工程的设置,修改Orther Link Flags,加入-L/usr/local/mysql/lib -lmysqlclient -lz -lm -lmygcc,如图
这个"-L/usr/local/mysql/lib -lmysqlclient -lz -lm -lmygcc" 是通过执行 /usr/local/mysql/bin/mysql_config --libs得到的,不同版本的mysql会有不通的输出
修改头文件和库文件的路径Header Search Path和Library Search Path,如图
新建一个类,名字叫mysqlDB,扩展名修改成.mm,不是.m, 这个非常重要,如果是.m的文件,不能在文件内部写c的代码,使用mysql api,其实是用c写的
mysqlDB.h
mysqlDB.mm
在 mysqlTest.m文件中加入
编译执行,就看到结果了
新建一个工程,名字叫 mysqlTest
修 改工程的设置,修改Orther Link Flags,加入-L/usr/local/mysql/lib -lmysqlclient -lz -lm -lmygcc,如图
这个"-L/usr/local/mysql/lib -lmysqlclient -lz -lm -lmygcc" 是通过执行 /usr/local/mysql/bin/mysql_config --libs得到的,不同版本的mysql会有不通的输出
修改头文件和库文件的路径Header Search Path和Library Search Path,如图
新建一个类,名字叫mysqlDB,扩展名修改成.mm,不是.m, 这个非常重要,如果是.m的文件,不能在文件内部写c的代码,使用mysql api,其实是用c写的
mysqlDB.h
- #import <Cocoa/Cocoa.h>
- #import <mysql.h>
- @interface mysqlDB : NSObject {
- MYSQL *myconnect;
- }
- // 连接mysql
- -(void)connectHost:(NSString *)host connectUser:(NSString *)user connectPassword:(NSString *)password connectName:(NSString *)name;
- // 关闭连接
- -(void)disconnect;
- // 执行query
- -(int)query:(NSString *)sql;
- // 返回结果集
- -(MYSQL_RES *)store_result;
- // fetch结果集
- -(NSMutableArray *)fetchRow:(MYSQL_RES *)result;
- -(NSMutableArray *)fetchAllRows:(MYSQL_RES *)result;
- @end
mysqlDB.mm
- #import "mysqlDB.h"
- @implementation mysqlDB
- -(id)init
- {
- [super init];
- return self;
- }
- -(void)connectHost:(NSString *)host connectUser:(NSString *)user connectPassword:(NSString *)password connectName:(NSString *)name
- {
- myconnect = mysql_init(myconnect);
- myconnect = mysql_real_connect(myconnect,[host UTF8String],[user UTF8String],[password UTF8String],[name UTF8String],MYSQL_PORT,NULL,0);
- }
- -(void)disconnect
- {
- mysql_close(myconnect);
- NSLog(@"Close From Mysql");
- }
- -(int)query:(NSString *)sql
- {
- return mysql_query(myconnect, [sql UTF8String]);
- }
- -(MYSQL_RES *)store_result
- {
- return mysql_store_result(myconnect);
- }
- -(NSMutableArray *)fetchRow:(MYSQL_RES *)result
- {
- MYSQL_ROW row;
- NSMutableArray *rowArray = [[NSMutableArray alloc] init];
- int fieldCount = mysql_field_count(myconnect);
- if(row = mysql_fetch_row(result))
- {
- for(int i = 0; i < fieldCount; i++)
- {
- /*
- NSString *tmpStr = [[NSString alloc] initWithUTF8String:row[i]];
- [rowArray addObject:tmpStr];
- [tmpStr autorelease];
- */
- [rowArray addObject:[[NSString stringWithUTF8String:row[i]] autorelease]];
- }
- }
- row = NULL;
- [rowArray autorelease];
- return rowArray;
- }
- -(NSMutableArray *)fetchAllRows:(MYSQL_RES *)result
- {
- NSMutableArray *resultArray = [[NSMutableArray alloc] init];
- int rowCount = mysql_num_rows(result);
- for(int i = 0; i < rowCount; i++)
- {
- //printf("%d\n",i);
- [resultArray addObject:[self fetchRow:result]];
- }
- [resultArray autorelease];
- return resultArray;
- }
- @end
在 mysqlTest.m文件中加入
- mysqlDB *newMysql = [[mysqlDB alloc] init];
- [newMysql connectHost:@"localhost" connectUser:@"root" connectPassword:@"" connectName:@"mysql"];
- [newMysql query:@"SELECT * FROM user"];
- NSMutableArray *result = [newMysql fetchAllRows:[newMysql store_result]];
- //NSLog(@"%d",[result count]);
- for(int i = 0; i < [result count]; i++)
- {
- //NSMutableArray *row = [result objectAtIndex:i];
- NSMutableArray *row = [[NSMutableArray alloc] initWithArray:[result objectAtIndex:i]];
- NSLog(@"\n%d:\n\t host:%@ \n\t user:%@",(i+1),[row objectAtIndex:0],[row objectAtIndex:1]);
- [row release];
- }
- [result release];
- [newMysql disconnect];
编译执行,就看到结果了
- Objective-C 使用MySQL数据库的教程
- Objective-C 使用MySQL数据库的教程
- 在Objective-c里面使用property教程
- 在Objective-c里面使用property教程
- 使用Objective-C解压缩ZIP文件教程
- 使用Objective-C解压缩ZIP文件教程
- 在Objective-c里面使用property教程
- 使用Objective-C解压缩ZIP文件教程
- 【objective-c】@property的使用
- objective-c block的使用
- Objective-C类的使用
- Objective-C NSDate的使用
- Objective-C NSFileManager的使用
- Objective-C--分类的使用
- Objective-C方法的使用
- Objective-C 枚举的使用
- Objective-c - instancetype的使用
- objective-c中文教程
- 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- 银行卡磁道详细说明
- 程序员技术练级攻略
- 内联函数,构造函数,静态函数都不能是虚函数
- 基于haar分类器特征提取及检测图像全过程(V0.1)
- Objective-C 使用MySQL数据库的教程
- 看Nokia五年之内如何挥发掉千亿市值
- DedeCMS中实现在顶层banner中显示自定义登录信息
- Decorator装饰器模式Java示例学习
- K-Means 算法
- Oracle之scott用户表、相关SQL语句
- hdu3032 Nim or not Nim?-----sg打表找规律 允许把一堆石子分成两堆小的
- 对技术的态度
- gacutil.exe