Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将MCPKit中的MySQL连接代码放在cocoa中的何处_Mysql_Cocoa_Class_Frameworks_Database Connection - Fatal编程技术网

将MCPKit中的MySQL连接代码放在cocoa中的何处

将MCPKit中的MySQL连接代码放在cocoa中的何处,mysql,cocoa,class,frameworks,database-connection,Mysql,Cocoa,Class,Frameworks,Database Connection,我正在计划把我的MySQL连接代码放在哪里- MCPConnection*conn=[[MCPConnection alloc]initToHost:@],登录名为@“usingPort:@]” 从mac上的MCPKET等。我的目标是通过整个应用程序创建尽可能少的连接实例(如果可能的话,只需一个就可以了) 我能想到的唯一3个地方是- 应用程序委托,但我如何在其他类中使用相同的连接(数据封装) 在每个窗口/视图控制器中放置代码,以实现每个单独的目的(但这意味着需要更多的代码和大量的连接,我不想要

我正在计划把我的MySQL连接代码放在哪里-

MCPConnection*conn=[[MCPConnection alloc]initToHost:@],登录名为@“usingPort:@]”

从mac上的MCPKET等。我的目标是通过整个应用程序创建尽可能少的连接实例(如果可能的话,只需一个就可以了)

我能想到的唯一3个地方是-

  • 应用程序委托,但我如何在其他类中使用相同的连接(数据封装)

  • 在每个窗口/视图控制器中放置代码,以实现每个单独的目的(但这意味着需要更多的代码和大量的连接,我不想要)

  • 或者最终为所有MySQL查询和单个连接设置一个单独的类。(但如何做到这一点,使此类中的方法易于调用,或者使SQL语句/查询对使用这些方法的所有其他类都具有足够的适应性)

我希望这不会太让人困惑-主要的一点是-我应该把连接代码放在哪里,它在类之间传输得好吗,还是需要在整个应用程序的使用过程中单独和连续地调用它


谢谢您的时间。

作为一个简单的解决方案,您可以使用Singleton模式,并使用对静态getInstance的调用替换init代码。单例包装器的唯一公共方法是getConnection,然后您可以正常使用它。是的,您可以将常见的sql构建方法拉入该类,但这会导致代码膨胀,最好对单独的类型查询使用Flyweight模式


这种设计的唯一缺点是,对单个共享数据库连接的访问必须始终序列化,如果有多个线程同时访问数据库,这可能会使一些UI变得缓慢和不负责任

谢谢你的贡献,但我不能理解很多,你能不能帮我简单一点?