转载自:http://hi.baidu.com/silvanote/blog/item/a5aab77996d458f90bd18748.html
实现这个需要assql 类库 虽然现在的版本还不稳定 但基本的一些数据操作可以
整理它的一些实例 做了一个AIR 的实例!现在查询 增加 列表 三个功能!
第一步 创建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 要连接的数据库名