AS3 自己读取mysql的例子
转载自: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 要连接的数据库名

浙公网安备 33010602011771号