自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何將AS3連接到MySQL數(shù)據(jù)庫上

數(shù)據(jù)庫 MySQL
最近由于制作任務(wù)編輯器,需要連接到數(shù)據(jù)庫中進(jìn)行一些任務(wù)數(shù)據(jù)的操作,而我們存放任務(wù)數(shù)據(jù)的數(shù)據(jù)庫中MYSQL,所以就找了一下AS3接連MYSQL數(shù)據(jù)庫的資料。

最近由于制作任務(wù)編輯器,需要連接到數(shù)據(jù)庫中進(jìn)行一些任務(wù)數(shù)據(jù)的操作,而我們存放任務(wù)數(shù)據(jù)的數(shù)據(jù)庫中MYSQL,所以就找了一下AS3接連MYSQL數(shù)據(jù)庫的資料。

擴(kuò)張閱讀:

ActionScript簡稱“AS”——動(dòng)作腳本,是遵循 ECMAscript第四版 的 Adobe Flash Player 運(yùn)行時(shí)環(huán)境的編程語言。它在 Flash 內(nèi)容和應(yīng)用程序中實(shí)現(xiàn)交互性、數(shù)據(jù)處理以及其他功能。 ActionScript是Flash的腳本語言,與JavaScript相似,ActionScript是一種編程語言,新出的AS3.0使用OOP(面對(duì)對(duì)象編程),增加更強(qiáng)的報(bào)錯(cuò)能力,指定類型也更明確。

找到一個(gè)好東西:ActionScript 3 MySql Driver,用SVN的童鞋可以直接checkout: 

http://assql.googlecode.com/svn/trunk/為了使用簡單,我做了一個(gè)簡單的包裝類(包含一個(gè)數(shù)據(jù)結(jié)構(gòu)):

  1. package com.easily.ds    
  2.  
  3. {    
  4.  
  5.     public class DataBaseData    
  6.  
  7.     {    
  8.  
  9.         public var host:String;    
  10.  
  11.         public var port:int;    
  12.  
  13.         public var username:String;    
  14.  
  15.         public var password:String;    
  16.  
  17.         public var database:String;    
  18.  
  19.     }    
  20.  
  21. }  
  1. package com.easily.util    
  2.  
  3. {    
  4.  
  5.     import com.easily.ds.DataBaseData;    
  6.  
  7.     import com.maclema.mysql.Connection;    
  8.  
  9.     import com.maclema.mysql.Field;    
  10.  
  11.     import com.maclema.mysql.MySqlResponse;    
  12.  
  13.     import com.maclema.mysql.MySqlToken;    
  14.  
  15.     import com.maclema.mysql.ResultSet;    
  16.  
  17.     import com.maclema.mysql.Statement;    
  18.  
  19.          
  20.  
  21.     import flash.events.Event;    
  22.  
  23.     import flash.events.EventDispatcher;    
  24.  
  25.          
  26.  
  27.     import mx.rpc.AsyncResponder;    
  28.  
  29.      
  30.  
  31.     /**    
  32.  
  33.      * @author Easily    
  34.  
  35.      */   
  36.  
  37.     public class DataBase extends EventDispatcher    
  38.  
  39.     {    
  40.  
  41.         private var mDataBase:DataBaseData;    
  42.  
  43.         private var mConnection:Connection;    
  44.  
  45.              
  46.  
  47.         public function DataBase(database:DataBaseData)    
  48.  
  49.         {    
  50.  
  51.             mDataBase = database;    
  52.  
  53.         }    
  54.  
  55.              
  56.  
  57.         public function connect():void   
  58.  
  59.         {    
  60.  
  61.             mConnection = new Connection(mDataBase.host, mDataBase.port,     
  62.  
  63.                 mDataBase.username, mDataBase.password, mDataBase.database);    
  64.  
  65.             mConnection.addEventListener(Event.CONNECT, onConnected);    
  66.  
  67.                  
  68.  
  69.             mConnection.connect();    
  70.  
  71.                  
  72.  
  73.             function onConnected(event:Event):void   
  74.  
  75.             {    
  76.  
  77.                 mConnection.removeEventListener(Event.CONNECT, onConnected);    
  78.  
  79.                      
  80.  
  81.                 dispatchEvent(event);    
  82.  
  83.             }    
  84.  
  85.         }    
  86.  
  87.              
  88.  
  89.         public function disconnect():void   
  90.  
  91.         {    
  92.  
  93.             mConnection.disconnect();    
  94.  
  95.         }    
  96.  
  97.              
  98.  
  99.         public function select(sql:String, completeHandler:Function, errorHandler:Function = null):void   
  100.  
  101.         {    
  102.  
  103.             var st:Statement = mConnection.createStatement();    
  104.  
  105.             var token:MySqlToken = st.executeQuery(sql);    
  106.  
  107.             var responder:AsyncResponder = new AsyncResponder(resultHandler, faultHandler, token);    
  108.  
  109.             token.addResponder(responder);    
  110.  
  111.                  
  112.  
  113.             function resultHandler(result:Object/*ResultSet*/, token:Object/*MySqlToken*/):void   
  114.  
  115.             {    
  116.  
  117.                 var data:Array = [];    
  118.  
  119.                      
  120.  
  121.                 if (result is ResultSet)    
  122.  
  123.                 {    
  124.  
  125.                     var fieldList:Array = result.getColumns();    
  126.  
  127.                     while (result.next())    
  128.  
  129.                     {    
  130.  
  131.                         var item:Object = {};    
  132.  
  133.                         for each (var field:Field in fieldList)    
  134.  
  135.                         {    
  136.  
  137.                             item[field.getName()] = result.getString(field.getName());    
  138.  
  139.                         }    
  140.  
  141.                         data.push(item);    
  142.  
  143.                     }    
  144.  
  145.                 }    
  146.  
  147.                      
  148.  
  149.                 completeHandler(data);    
  150.  
  151.             }    
  152.  
  153.                  
  154.  
  155.             function faultHandler(info:Object, token:Object):void   
  156.  
  157.             {    
  158.  
  159.                 if (errorHandler == nullreturn;    
  160.  
  161.                      
  162.  
  163.                 errorHandler();    
  164.  
  165.             }    
  166.  
  167.         }    
  168.  
  169.              
  170.  
  171.         public function insert(sql:String, completeHandler:Function, errorHandler:Function = null):void   
  172.  
  173.         {    
  174.  
  175.             var st:Statement = mConnection.createStatement();    
  176.  
  177.             var token:MySqlToken = st.executeQuery(sql);    
  178.  
  179.             var responder:AsyncResponder = new AsyncResponder(resultHandler, faultHandler, token);    
  180.  
  181.             token.addResponder(responder);    
  182.  
  183.                  
  184.  
  185.             function resultHandler(result:Object/*MySqlResponse*/, token:Object/*MySqlToken*/):void   
  186.  
  187.             {    
  188.  
  189.                 completeHandler(result.insertID);    
  190.  
  191.             }    
  192.  
  193.                  
  194.  
  195.             function faultHandler(info:Object, token:Object):void   
  196.  
  197.             {    
  198.  
  199.                 if (errorHandler == nullreturn;    
  200.  
  201.                      
  202.  
  203.                 errorHandler();    
  204.  
  205.             }    
  206.  
  207.         }    
  208.  
  209.              
  210.  
  211.         public function remove(sql:String, completeHandler:Function, errorHandler:Function = null):void   
  212.  
  213.         {    
  214.  
  215.             var st:Statement = mConnection.createStatement();    
  216.  
  217.             var token:MySqlToken = st.executeQuery(sql);    
  218.  
  219.             var responder:AsyncResponder = new AsyncResponder(resultHandler, faultHandler, token);    
  220.  
  221.             token.addResponder(responder);    
  222.  
  223.                  
  224.  
  225.             function resultHandler(result:Object/*MySqlResponse*/, token:Object/*MySqlToken*/):void   
  226.  
  227.             {    
  228.  
  229.                 completeHandler();    
  230.  
  231.             }    
  232.  
  233.                  
  234.  
  235.             function faultHandler(info:Object, token:Object):void   
  236.  
  237.             {    
  238.  
  239.                 if (errorHandler == nullreturn;    
  240.  
  241.                      
  242.  
  243.                 errorHandler();    
  244.  
  245.             }    
  246.  
  247.         }    
  248.  
  249.     }    
  250.  
  251. }  

其中有3個(gè)方法,select,insert,remove,分別對(duì)應(yīng)了SQL語句中的select,insert,delete

用法很簡單,先連接:

  1. var databaseData:DataBaseData = new DataBaseData();         
  2.  
  3. databaseData.host = "127.0.0.1";    
  4.  
  5. databaseData.database = "game";    
  6.  
  7. databaseData.password = "123456";    
  8.  
  9. databaseData.port = 3306;    
  10.  
  11. databaseData.username = "root";    
  12.  
  13.      
  14.  
  15. var dataBase:DataBase = new DataBase(databaseData);    
  16.  
  17. dataBase.addEventListener(Event.CONNECT, onConnected);    
  18.  
  19. dataBase.connect();    
  20.  
  21.      
  22.  
  23. function onConnected(event:Event):void   
  24.  
  25. {    
  26.  
  27.     dataBase.removeEventListener(Event.CONNECT, onConnected);    
  28.  
  29.          
  30.  
  31.     dispatchEvent(new Event(Event.COMPLETE));    
  32.  
  33. }  

如果不需要用了可以先斷開連接:

  1. dataBase.disconnect();   

下面是select語句:

  1. var sql:String = "select id,name from `npc`";    
  2.  
  3. dataBase.select(sql, endQuery);    
  4.  
  5.      
  6.  
  7. function endQuery(data:Array):void   
  8.  
  9. {    
  10.  
  11.     var npcList:Array=  [];    
  12.  
  13.     for each (var item:Object in data)    
  14.  
  15.     {    
  16.  
  17.         var npc:Object = {id:item.id, name:item.name};    
  18.  
  19.              
  20.  
  21.         npcList.push(npc);    
  22.  
  23.     }       
  24.  
  25. }  

insert語句用法會(huì)返回一個(gè)insertID,也就是插入的那條數(shù)據(jù)的ID。

 原文鏈接:http://www.cnblogs.com/yili16438/archive/2011/04/23/2025936.html

【編輯推薦】

  1. 用C++連接MySQL等數(shù)據(jù)庫一
  2. 用C++連接MySQL等數(shù)據(jù)庫二
  3. 這些SQLite與SQL差異問題,你遇到過嗎
  4. 總結(jié)Win2003 Server與SQL Server 2005的遠(yuǎn)程連接過程
  5. 如何解決IBatis.net與MySQL連接問題
責(zé)任編輯:艾婧 來源: 博客園
相關(guān)推薦

2023-04-25 13:57:00

GitHubVS Code

2012-06-20 11:17:02

MemSQL

2019-09-18 08:00:00

MySQL數(shù)據(jù)庫服務(wù)器

2010-05-26 14:24:24

MySQL數(shù)據(jù)庫

2022-06-26 07:18:17

數(shù)據(jù)庫NodePostgreSQL

2021-01-28 09:00:00

SQL數(shù)據(jù)庫NoSQL

2019-08-27 09:20:21

無線打印機(jī)Windows 10PC

2011-07-28 18:08:51

SQL Server MySQL

2021-08-02 10:53:28

PythonMySQL數(shù)據(jù)庫

2009-11-24 16:48:15

PHP mysqli

2010-05-14 11:12:16

連接MySql

2020-11-23 14:16:42

Golang

2010-09-30 11:04:47

DB2數(shù)據(jù)庫卸載

2018-10-15 13:57:38

Hadoop數(shù)據(jù)庫MySQL

2017-09-11 19:30:44

MySQLCmd命令連接數(shù)據(jù)庫

2019-03-20 09:00:00

MySQL數(shù)據(jù)庫轉(zhuǎn)移數(shù)據(jù)庫

2010-06-04 17:49:46

連接MySQL數(shù)據(jù)庫

2018-02-26 20:00:00

編程語言JavaMySQL

2009-06-01 09:57:43

netbeans連接數(shù)netbeans數(shù)據(jù)庫netbeans連接m

2009-07-07 14:56:33

JSP連接MySQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)