AS3 自己读取mysql的例子

转载自:http://hi.baidu.com/silvanote/blog/item/a5aab77996d458f90bd18748.html

 

实现这个需要assql 类库 虽然现在的版本还不稳定 但基本的一些数据操作可以

整理它的一些实例 做了一个AIR 的实例!现在查询 增加 列表 三个功能!

a1e7013c8b5e3ac7828b138e.jpg

e38a74e8f1a53feed539c98f.jpg

第一步 创建MYSQL数据库:

assql-test

第二步 执行下例SQL语句:

CREATE TABLE IF NOT EXISTS `use_db` (
   `id` float NOT NULL AUTO_INCREMENT,
   `names` char(25) COLLATE utf8_bin NOT NULL,
   `pass` char(25) COLLATE utf8_bin NOT NULL,
   PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=10 ;

第三步:创建一个FB4 AIR项目 名为AsSql

mxml代码 全部复制粘过去就行了

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
              xmlns:s="library://ns.adobe.com/flex/spark"
              creationComplete="init()"
              xmlns:mx="library://ns.adobe.com/flex/mx" width="600" height="300">
   <fx:Script>
     <![CDATA[
      import com.maclema.mysql.Connection;
      import com.maclema.mysql.MySqlToken;
      import com.maclema.mysql.ResultSet;
      import com.maclema.mysql.Statement;
      import com.maclema.util.ResultsUtil;
      import mx.controls.Alert;
      import mx.rpc.AsyncResponder;
      private var con:Connection;
      private function init():void{
         onCreationComplete();
       }
      private function onCreationComplete():void {
         con = new Connection("localhost", 3306, "root", "", "assql-test");
         con.addEventListener(Event.CONNECT, handleConnected);
         con.connect();
       }
      
      private function handleConnected(e:Event):void {
         getList();
       }
      
      private function getTab(_id:int):void{
         var st:Statement = con.createStatement();
         st.sql = "SELECT * FROM use_db WHERE id = "+String(_id);
         var token:MySqlToken = st.executeQuery();
         token.addResponder(new AsyncResponder(
           function (data:Object, token:Object):void {
             var rs:ResultSet = ResultSet(data);
            while(rs.next()) {
               out_txt.text=rs.getString("names")+":"+rs.getString("pass");
             }
           },
           function (info:Object, token:Object):void {
             Alert.show("Error: " + info);
           },
           token
         ));
       }
      private function getList(_s:int=0,_e:int=100):void{
         var st:Statement = con.createStatement();
         st.sql = "SELECT * FROM `use_db` LIMIT 0,30";
         var token:MySqlToken = st.executeQuery();
         token.addResponder(new AsyncResponder(
           function (data:Object, token:Object):void {
             var rs:ResultSet = ResultSet(data);
             var obj:Array=new Array();
            while(rs.next() ) {
               Debug.log(rs.getString("names"));
               obj.push({ids:rs.getNumber("id"),names:rs.getString("names"),pass:rs.getString("pass")});
             }
             dataList.dataProvider=obj;
           },
           function (info:Object, token:Object):void {
             Alert.show("Error: " + info);
           },
           token
         ));
       }
      private function wirteData(user:String,pass:String):void{
        //INSERT INTO `assql-test`.`use_db` (`id`, `names`, `pass`) VALUES (NULL, '', ''), (NULL, 'qq', 'wwe123');
         var st:Statement = con.createStatement();
         st.sql = "INSERT INTO `assql-test`.`use_db` (`id`, `names`, `pass`) VALUES (NULL, '"+user+"', '"+pass+"')";
         var token:MySqlToken = st.executeQuery();
         token.addResponder(new AsyncResponder(
           function (data:Object, token:Object):void {
            if(data.affectedRows>=1){
               Alert.show('成功写入'+String(data.affectedRows)+'数据');
               getList();
             }
           },
           function (info:Object, token:Object):void {
             Alert.show("Error: " + info);
           },
           token
         ));
       }
     ]]>
   </fx:Script>
   <s:HGroup>
     <s:VGroup>
       <s:Label text="操作数据库:"/>
       <mx:Form>
         <mx:FormItem label="id:">
           <s:TextInput id="input_txt" />
         </mx:FormItem>
         <mx:FormItem>
           <s:Button label="读取" click="getTab(int(input_txt.text))"/>
         </mx:FormItem>
         <mx:FormItem label="输出:">
           <s:TextArea id="out_txt" height="50" width="100%"/>
         </mx:FormItem>
         <mx:HRule width="100%"/>
         <mx:FormItem label="names:">
           <s:TextInput id="input1_txt" />
         </mx:FormItem>
         <mx:FormItem label="pass:">
           <s:TextInput id="input2_txt" />
         </mx:FormItem>
         <mx:FormItem>
           <s:Button label="写入" click="wirteData(input1_txt.text,input2_txt.text)"/>
         </mx:FormItem>
       </mx:Form>
     </s:VGroup>
     <mx:VRule id="line" height="100%"/>
     <s:VGroup>
       <s:Label text="数据库列表:"/>
       <mx:DataGrid rowCount="3" id="dataList" height="200">
         <mx:columns>
           <mx:DataGridColumn dataField="ids" dataTipField="id"/>
           <mx:DataGridColumn dataField="names"/>
           <mx:DataGridColumn dataField="pass"/>
         </mx:columns>
       </mx:DataGrid>
     </s:VGroup>
   </s:HGroup>
</s:WindowedApplication>

其中注意

con = new Connection("localhost", 3306, "root", "", "assql-test"); 是否配置正确

参数1 为你本地的IP 或是外网的IP

参数2 端口

参数3 mysql用户名

参数4 mysql 密码

参数5 要连接的数据库名


 

转载于:https://www.cnblogs.com/as-liu/archive/2011/09/02/2163486.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值