用的是MySQL数据库。

1,建一个userdb库,再建userinfo表,字 段:id(int),username(varchar),password(varchar)。

view plaincopy to clipboardprint?
  1. create database userdb;
  2. use userdb;
  3. create table userinfo(
  4. id int(10) not null auto_increment,
  5. username varchar(20),
  6. password varchar(20),
  7. primary key(id));

create database userdb; use userdb; create table userinfo( id int(10) not null auto_increment, username varchar(20), password varchar(20), primary key(id));

2,DBConnection.java

view plaincopy to clipboardprint?
  1. package com.datainfo;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.SQLException;
  5. public class DBConnection {
  6. public static Connection getConnection() throws ClassNotFoundException,
  7. SQLException {
  8. Connection conn = null;
  9. String driver = "com.mysql.jdbc.Driver";
  10. String url = "jdbc:mysql://localhost:3306/userdb";
  11. String username = "root";
  12. String password = "mysql";
  13. Class.forName(driver);
  14. conn = DriverManager.getConnection(url, username, password);
  15. return conn;
  16. }
  17. }

package com.datainfo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnection { public static Connection getConnection() throws ClassNotFoundException, SQLException { Connection conn = null; String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/userdb"; String username = "root"; String password = "mysql"; Class.forName(driver); conn = DriverManager.getConnection(url, username, password); return conn; } }

3,User.java

view plaincopy to clipboardprint?
  1. package com.datainfo;
  2. public class User {
  3. private int id;
  4. private String username;
  5. private String password;
  6. public User() {
  7. }
  8. /**
  9. * @return the id
  10. */
  11. public int getId() {
  12. return id;
  13. }
  14. /**
  15. * @param id
  16. *            the id to set
  17. */
  18. public void setId(int id) {
  19. this.id = id;
  20. }
  21. /**
  22. * @return the username
  23. */
  24. public String getUsername() {
  25. return username;
  26. }
  27. /**
  28. * @param username
  29. *            the username to set
  30. */
  31. public void setUsername(String username) {
  32. this.username = username;
  33. }
  34. /**
  35. * @return the password
  36. */
  37. public String getPassword() {
  38. return password;
  39. }
  40. /**
  41. * @param password
  42. *            the password to set
  43. */
  44. public void setPassword(String password) {
  45. this.password = password;
  46. }
  47. }

package com.datainfo; public class User { private int id; private String username; private String password; public User() { } /** * @return the id */ public int getId() { return id; } /** * @param id * the id to set */ public void setId(int id) { this.id = id; } /** * @return the username */ public String getUsername() { return username; } /** * @param username * the username to set */ public void setUsername(String username) { this.username = username; } /** * @return the password */ public String getPassword() { return password; } /** * @param password * the password to set */ public void setPassword(String password) { this.password = password; } }

4,UserDAO.java

view plaincopy to clipboardprint?
  1. package com.datainfo;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. import java.util.ArrayList;
  8. import com.datainfo.DBConnection;
  9. public class UserDAO {
  10. public ArrayList getUserList() throws ClassNotFoundException, SQLException {
  11. Connection conn = DBConnection.getConnection();
  12. Statement stmt = conn.createStatement();
  13. ResultSet rs = stmt.executeQuery("select * from userinfo");
  14. ArrayList userList = null;
  15. try {
  16. userList = new ArrayList();
  17. while (rs.next()) {
  18. User user = new User();
  19. user.setId(rs.getInt("id"));
  20. user.setUsername(rs.getString("username"));
  21. user.setPassword(rs.getString("password"));
  22. userList.add(user);
  23. }
  24. rs.close();
  25. stmt.close();
  26. conn.close();
  27. } catch (Exception e) {
  28. // TODO Auto-generated catch block
  29. e.printStackTrace();
  30. }
  31. return userList;
  32. }
  33. public void addUser(User user) throws ClassNotFoundException, SQLException {
  34. Connection conn = DBConnection.getConnection();
  35. String sql = "insert into userinfo (username,password) values (?,?)";
  36. try {
  37. PreparedStatement pstmt = conn.prepareStatement(sql);
  38. pstmt.setString(1, user.getUsername());
  39. pstmt.setString(2, user.getPassword());
  40. pstmt.executeUpdate();
  41. pstmt.close();
  42. conn.close();
  43. } catch (Exception e) {
  44. // TODO Auto-generated catch block
  45. e.printStackTrace();
  46. }
  47. }
  48. public void updataUser(User user) throws ClassNotFoundException,
  49. SQLException {
  50. Connection conn = DBConnection.getConnection();
  51. String sql = "update userinfo set username=?,password=? where id=?";
  52. try {
  53. PreparedStatement pstmt = conn.prepareStatement(sql);
  54. pstmt.setString(1, user.getUsername());
  55. pstmt.setString(2, user.getPassword());
  56. pstmt.setInt(3, user.getId());
  57. pstmt.executeUpdate();
  58. pstmt.close();
  59. conn.close();
  60. } catch (Exception e) {
  61. // TODO Auto-generated catch block
  62. e.printStackTrace();
  63. }
  64. }
  65. public void deleteUser(User user) throws ClassNotFoundException,
  66. SQLException {
  67. Connection conn = DBConnection.getConnection();
  68. String sql = "delete from userinfo where id =?";
  69. try {
  70. PreparedStatement pstmt = conn.prepareStatement(sql);
  71. pstmt.setInt(1, user.getId());
  72. pstmt.executeUpdate();
  73. pstmt.close();
  74. conn.close();
  75. } catch (Exception e) {
  76. // TODO Auto-generated catch block
  77. e.printStackTrace();
  78. }
  79. }
  80. }

package com.datainfo; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import com.datainfo.DBConnection; public class UserDAO { public ArrayList getUserList() throws ClassNotFoundException, SQLException { Connection conn = DBConnection.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from userinfo"); ArrayList userList = null; try { userList = new ArrayList(); while (rs.next()) { User user = new User(); user.setId(rs.getInt("id")); user.setUsername(rs.getString("username")); user.setPassword(rs.getString("password")); userList.add(user); } rs.close(); stmt.close(); conn.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return userList; } public void addUser(User user) throws ClassNotFoundException, SQLException { Connection conn = DBConnection.getConnection(); String sql = "insert into userinfo (username,password) values (?,?)"; try { PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, user.getUsername()); pstmt.setString(2, user.getPassword()); pstmt.executeUpdate(); pstmt.close(); conn.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void updataUser(User user) throws ClassNotFoundException, SQLException { Connection conn = DBConnection.getConnection(); String sql = "update userinfo set username=?,password=? where id=?"; try { PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, user.getUsername()); pstmt.setString(2, user.getPassword()); pstmt.setInt(3, user.getId()); pstmt.executeUpdate(); pstmt.close(); conn.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void deleteUser(User user) throws ClassNotFoundException, SQLException { Connection conn = DBConnection.getConnection(); String sql = "delete from userinfo where id =?"; try { PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, user.getId()); pstmt.executeUpdate(); pstmt.close(); conn.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }

5,配置文件remoting-config.xml

view plaincopy to clipboardprint?
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <service id="remoting-service" class="flex.messaging.services.RemotingService">
  3. <adapters>
  4. <adapter-definition id="java-object"
  5. class="flex.messaging.services.remoting.adapters.JavaAdapter"
  6. default="true" />
  7. </adapters>
  8. <default-channels>
  9. <channel ref="my-amf" />
  10. </default-channels>
  11. <destination id="userDao">
  12. <properties>
  13. <source>com.datainfo.UserDAO</source>
  14. </properties>
  15. </destination>
  16. </service>

<?xml version="1.0" encoding="UTF-8"?> <service id="remoting-service" class="flex.messaging.services.RemotingService"> <adapters> <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true" /> </adapters> <default-channels> <channel ref="my-amf" /> </default-channels> <destination id="userDao"> <properties> <source>com.datainfo.UserDAO</source> </properties> </destination> </service>

6,以下是flex端,UserFlex.as

view plaincopy to clipboardprint?
  1. package com.flex
  2. {
  3. [Bindable]
  4. [RemoteClass(alias="com.datainfo.User")]
  5. public class UserFlex
  6. {
  7. //      public function UserFlex{
  8. //
  9. //      }
  10. public var id:int;
  11. public var username:String;
  12. public var password:String;
  13. //      如果用private,就需要写上get/set
  14. //
  15. //      public function get id():int{
  16. //          return this.id;
  17. //      }
  18. //      public function set id():int{
  19. //          this.id = id;
  20. //      }
  21. //
  22. //      public function get username():String{
  23. //          return this.username;
  24. //      }
  25. //      public function set username():String{
  26. //          this.username = username;
  27. //      }
  28. //
  29. //      public function get password():String{
  30. //          return this.password;
  31. //      }
  32. //      public function set password():String{
  33. //          this.password = password;
  34. //      }
  35. }
  36. }

package com.flex { [Bindable] [RemoteClass(alias="com.datainfo.User")] public class UserFlex { // public function UserFlex{ // // } public var id:int; public var username:String; public var password:String; // 如果用private,就需要写上get/set // // public function get id():int{ // return this.id; // } // public function set id():int{ // this.id = id; // } // // public function get username():String{ // return this.username; // } // public function set username():String{ // this.username = username; // } // // public function get password():String{ // return this.password; // } // public function set password():String{ // this.password = password; // } } }

7,自定义的DataGrid组件,用以双击修改数据DoubleClickDataGrid.as

view plaincopy to clipboardprint?
  1. package com.flex
  2. {
  3. import flash.events.MouseEvent;
  4. import mx.controls.DataGrid;
  5. import mx.controls.dataGridClasses.DataGridColumn;
  6. import mx.controls.listClasses.IDropInListItemRenderer;
  7. import mx.controls.listClasses.IListItemRenderer;
  8. import mx.core.EventPriority;
  9. import mx.events.DataGridEvent;
  10. public class DoubleClickDataGrid extends DataGrid
  11. {
  12. public function DoubleClickDataGrid()
  13. {
  14. //TODO: implement function
  15. super();
  16. doubleClickEnabled = true;
  17. }
  18. override protected function mouseDoubleClickHandler(event:MouseEvent):void
  19. {
  20. var dataGridEvent:DataGridEvent;
  21. var r:IListItemRenderer;
  22. var dgColumn:DataGridColumn;
  23. r = mouseEventToItemRenderer(event);
  24. if (r && r != itemEditorInstance)
  25. {
  26. var dilr:IDropInListItemRenderer = IDropInListItemRenderer(r);
  27. if (columns[dilr.listData.columnIndex].editable)
  28. {
  29. dgColumn = columns[dilr.listData.columnIndex];
  30. dataGridEvent = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, false, true);
  31. // ITEM_EDIT events are cancelable
  32. dataGridEvent.columnIndex = dilr.listData.columnIndex;
  33. dataGridEvent.dataField = dgColumn.dataField;
  34. dataGridEvent.rowIndex = dilr.listData.rowIndex + verticalScrollPosition;
  35. dataGridEvent.itemRenderer = r;
  36. dispatchEvent(dataGridEvent);
  37. }
  38. }
  39. super.mouseDoubleClickHandler(event);
  40. }
  41. override protected function mouseUpHandler(event:MouseEvent):void
  42. {
  43. var r:IListItemRenderer;
  44. var dgColumn:DataGridColumn;
  45. r = mouseEventToItemRenderer(event);
  46. if (r)
  47. {
  48. var dilr:IDropInListItemRenderer = IDropInListItemRenderer(r);
  49. if (columns[dilr.listData.columnIndex].editable)
  50. {
  51. dgColumn = columns[dilr.listData.columnIndex];
  52. dgColumn.editable = false;
  53. }
  54. }
  55. super.mouseUpHandler(event);
  56. if (dgColumn)
  57. dgColumn.editable = true;
  58. }
  59. }
  60. }

package com.flex { import flash.events.MouseEvent; import mx.controls.DataGrid; import mx.controls.dataGridClasses.DataGridColumn; import mx.controls.listClasses.IDropInListItemRenderer; import mx.controls.listClasses.IListItemRenderer; import mx.core.EventPriority; import mx.events.DataGridEvent; public class DoubleClickDataGrid extends DataGrid { public function DoubleClickDataGrid() { //TODO: implement function super(); doubleClickEnabled = true; } override protected function mouseDoubleClickHandler(event:MouseEvent):void { var dataGridEvent:DataGridEvent; var r:IListItemRenderer; var dgColumn:DataGridColumn; r = mouseEventToItemRenderer(event); if (r && r != itemEditorInstance) { var dilr:IDropInListItemRenderer = IDropInListItemRenderer(r); if (columns[dilr.listData.columnIndex].editable) { dgColumn = columns[dilr.listData.columnIndex]; dataGridEvent = new DataGridEvent(DataGridEvent.ITEM_EDIT_BEGINNING, false, true); // ITEM_EDIT events are cancelable dataGridEvent.columnIndex = dilr.listData.columnIndex; dataGridEvent.dataField = dgColumn.dataField; dataGridEvent.rowIndex = dilr.listData.rowIndex + verticalScrollPosition; dataGridEvent.itemRenderer = r; dispatchEvent(dataGridEvent); } } super.mouseDoubleClickHandler(event); } override protected function mouseUpHandler(event:MouseEvent):void { var r:IListItemRenderer; var dgColumn:DataGridColumn; r = mouseEventToItemRenderer(event); if (r) { var dilr:IDropInListItemRenderer = IDropInListItemRenderer(r); if (columns[dilr.listData.columnIndex].editable) { dgColumn = columns[dilr.listData.columnIndex]; dgColumn.editable = false; } } super.mouseUpHandler(event); if (dgColumn) dgColumn.editable = true; } } }

8,页面显示,testflex.mxml

view plaincopy to clipboardprint?
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  3. xmlns:s="library://ns.adobe.com/flex/spark"
  4. xmlns:mx="library://ns.adobe.com/flex/mx"
  5. xmlns:locdg="com.flex.*"
  6. creationComplete="initApp()"
  7. minWidth="955" minHeight="600">
  8. <fx:Declarations>
  9. <!-- 将非可视元素(例如服务、值对象)放在此处 -->
  10. <s:RemoteObject id="userdata" destination="userDao" result="onResult(event)" fault="onFault(event)" />
  11. <!--<s:method name="getUserList" result="onResult(event)" fault="onFault(event)" />-->
  12. <s:RemoteObject id="adduserdata" destination="userDao" result="addResult(event)" fault="addFault(event)" />
  13. <s:RemoteObject id="updatauserdata" destination="userDao" result="updataResult(event)" fault="updataFault(event)" />
  14. <s:RemoteObject id="deleteuserdata" destination="userDao" result="deleteResult(event)" fault="deleteFault(event)" />
  15. </fx:Declarations>
  16. <fx:Script>
  17. <!--[CDATA[
  18. import com.flex.UserFlex;
  19. import mx.collections.ArrayCollection;
  20. import mx.controls.Alert;
  21. import mx.managers.CursorManager;
  22. import mx.rpc.events.FaultEvent;
  23. import mx.rpc.events.ResultEvent;
  24. public var userFlex:UserFlex = new UserFlex();
  25. public var result:Object = new Object();
  26. [Bindable]
  27. public var users:ArrayCollection = new ArrayCollection();
  28. public function initApp():void{
  29. //              userdata.getUserList();
  30. }
  31. public function click_handler(event:Event):void{
  32. CursorManager.setBusyCursor();
  33. info.text = "正在查 询...";
  34. userdata.getUserList();
  35. }
  36. public function adduser_handler(event:Event):void{
  37. if(username.text != "" && password.text != ""){
  38. CursorManager.setBusyCursor();
  39. addinfo.text = "正在添加...";
  40. userFlex.username = username.text;
  41. userFlex.password = password.text;
  42. adduserdata.addUser(userFlex);
  43. }else{
  44. addinfo.text = " 用户名和密码不能为空";
  45. }
  46. }
  47. public function updataUser(event:Event):void{
  48. if(userlist.selectedItem.username != "" && userlist.selectedItem.password != ""){
  49. CursorManager.setBusyCursor();
  50. info.text = "正在 更新...";
  51. userFlex.id = userlist.selectedItem.id;
  52. userFlex.username = userlist.selectedItem.username;
  53. userFlex.password = userlist.selectedItem.password;
  54. updatauserdata.updataUser(userFlex);
  55. }
  56. //              Alert.show("确认修改?");
  57. }
  58. public function deleteUser(event:Event):void{
  59. CursorManager.setBusyCursor();
  60. info.text = "正在正在删 除...";
  61. userFlex.id = userlist.selectedItem.id;
  62. deleteuserdata.deleteUser(userFlex);
  63. }
  64. public function onResult(event:ResultEvent):void{
  65. users = event.result as ArrayCollection;
  66. CursorManager.removeBusyCursor();
  67. if(users.length==0){
  68. info.text="取数据成功,为空";
  69. }else{
  70. info.text = " 取数据成功";
  71. }
  72. }
  73. public function onFault(event:FaultEvent):void{
  74. CursorManager.removeBusyCursor();
  75. info.text="取数据失败";
  76. }
  77. public function addResult(event:ResultEvent):void{
  78. CursorManager.removeBusyCursor();
  79. userdata.getUserList();
  80. username.text = "";
  81. password.text = "";
  82. addinfo.text = " 添加成功";
  83. //              info.text = "取数据成功";
  84. }
  85. public function addFault(event:FaultEvent):void{
  86. CursorManager.removeBusyCursor();
  87. addinfo.text="添加失败";
  88. }
  89. public function updataResult(event:ResultEvent):void{
  90. CursorManager.removeBusyCursor();
  91. userdata.getUserList();
  92. info.text = "修改数 据成功";
  93. }
  94. public function updataFault(event:FaultEvent):void{
  95. CursorManager.removeBusyCursor();
  96. info.text="修改数据失 败";
  97. }
  98. public function deleteResult(event:ResultEvent):void{
  99. CursorManager.removeBusyCursor();
  100. userdata.getUserList();
  101. info.text = "刪除数据成 功";
  102. }
  103. public function deleteFault(event:FaultEvent):void{
  104. CursorManager.removeBusyCursor();
  105. info.text="刪除数据失败";
  106. }
  107. ]]-->
  108. </fx:Script>
  109. <locdg:DoubleClickDataGrid x="61" y="189" id="userlist" dataProvider="{users}" editable="true">
  110. <locdg:columns>
  111. <mx:DataGridColumn headerText="ID号" dataField="id" editable="false"/>
  112. <mx:DataGridColumn headerText="账号" dataField="username" editable="true"/>
  113. <mx:DataGridColumn headerText="密码" dataField="password" editable="true"/>
  114. <mx:DataGridColumn headerText="修改" width="50" editable="false" >
  115. <mx:itemRenderer>
  116. <fx:Component>
  117. <mx:LinkButton toolTip="修改" click="outerDocument.updataUser(event)" icon="@Embed('/image/update.gif')">
  118. </mx:LinkButton>
  119. </fx:Component>
  120. </mx:itemRenderer>
  121. </mx:DataGridColumn>
  122. <mx:DataGridColumn headerText="删除" width="50" editable="false" >
  123. <mx:itemRenderer>
  124. <fx:Component>
  125. <mx:LinkButton toolTip="删除" click="outerDocument.deleteUser(event)" icon="@Embed('/image/delete.gif')">
  126. </mx:LinkButton>
  127. </fx:Component>
  128. </mx:itemRenderer>
  129. </mx:DataGridColumn>
  130. </locdg:columns>
  131. </locdg:DoubleClickDataGrid>
  132. <s:Button x="491" y="189" label="取数 据" click="click_handler(event)" />
  133. <s:RichText x="606" y="189" id="info" text="点击按钮取数据"/>
  134. <mx:Form x="163" y="72" borderStyle="solid" borderVisible="true">
  135. <mx:FormItem label="用户名" borderStyle="solid" borderVisible="true">
  136. <s:TextInput id="username" />
  137. </mx:FormItem>
  138. <mx:FormItem label="密 码" borderStyle="solid" borderVisible="true">
  139. <s:TextInput id="password"/>
  140. </mx:FormItem>
  141. </mx:Form>
  142. <s:Button x="444" y="100" label="添 加" click="adduser_handler(event)"/>
  143. <s:RichText x="544" y="100" id="addinfo" text="请添加"/>
  144. </s:Application>

<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:locdg="com.flex.*" creationComplete="initApp()" minWidth="955" minHeight="600"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <s:RemoteObject id="userdata" destination="userDao" result="onResult(event)" fault="onFault(event)" /> <!--<s:method name="getUserList" result="onResult(event)" fault="onFault(event)" />--> <s:RemoteObject id="adduserdata" destination="userDao" result="addResult(event)" fault="addFault(event)" /> <s:RemoteObject id="updatauserdata" destination="userDao" result="updataResult(event)" fault="updataFault(event)" /> <s:RemoteObject id="deleteuserdata" destination="userDao" result="deleteResult(event)" fault="deleteFault(event)" /> </fx:Declarations> <fx:Script> <!--[CDATA[ import com.flex.UserFlex; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.managers.CursorManager; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; public var userFlex:UserFlex = new UserFlex(); public var result:Object = new Object(); [Bindable] public var users:ArrayCollection = new ArrayCollection(); public function initApp():void{ // userdata.getUserList(); } public function click_handler(event:Event):void{ CursorManager.setBusyCursor(); info.text = "正在查询..."; userdata.getUserList(); } public function adduser_handler(event:Event):void{ if(username.text != "" && password.text != ""){ CursorManager.setBusyCursor(); addinfo.text = "正在添加..."; userFlex.username = username.text; userFlex.password = password.text; adduserdata.addUser(userFlex); }else{ addinfo.text = "用户名和密码不能为空"; } } public function updataUser(event:Event):void{ if(userlist.selectedItem.username != "" && userlist.selectedItem.password != ""){ CursorManager.setBusyCursor(); info.text = "正在更新..."; userFlex.id = userlist.selectedItem.id; userFlex.username = userlist.selectedItem.username; userFlex.password = userlist.selectedItem.password; updatauserdata.updataUser(userFlex); } // Alert.show("确认修改?"); } public function deleteUser(event:Event):void{ CursorManager.setBusyCursor(); info.text = "正在正在删除..."; userFlex.id = userlist.selectedItem.id; deleteuserdata.deleteUser(userFlex); } public function onResult(event:ResultEvent):void{ users = event.result as ArrayCollection; CursorManager.removeBusyCursor(); if(users.length==0){ info.text="取数据成功,为空"; }else{ info.text = "取数据成功"; } } public function onFault(event:FaultEvent):void{ CursorManager.removeBusyCursor(); info.text="取数据失败"; } public function addResult(event:ResultEvent):void{ CursorManager.removeBusyCursor(); userdata.getUserList(); username.text = ""; password.text = ""; addinfo.text = "添加成功"; // info.text = "取数据成功"; } public function addFault(event:FaultEvent):void{ CursorManager.removeBusyCursor(); addinfo.text="添加失败"; } public function updataResult(event:ResultEvent):void{ CursorManager.removeBusyCursor(); userdata.getUserList(); info.text = "修改数据成功"; } public function updataFault(event:FaultEvent):void{ CursorManager.removeBusyCursor(); info.text="修改数据失败"; } public function deleteResult(event:ResultEvent):void{ CursorManager.removeBusyCursor(); userdata.getUserList(); info.text = "刪除数据成功"; } public function deleteFault(event:FaultEvent):void{ CursorManager.removeBusyCursor(); info.text="刪除数据失败"; } ]]--> </fx:Script> <locdg:DoubleClickDataGrid x="61" y="189" id="userlist" dataProvider="{users}" editable="true"> <locdg:columns> <mx:DataGridColumn headerText="ID号" dataField="id" editable="false"/> <mx:DataGridColumn headerText="账号" dataField="username" editable="true"/> <mx:DataGridColumn headerText="密码" dataField="password" editable="true"/> <mx:DataGridColumn headerText="修改" width="50" editable="false" > <mx:itemRenderer> <fx:Component> <mx:LinkButton toolTip="修改" click="outerDocument.updataUser(event)" icon="@Embed('/image/update.gif')"> </mx:LinkButton> </fx:Component> </mx:itemRenderer> </mx:DataGridColumn> <mx:DataGridColumn headerText="删除" width="50" editable="false" > <mx:itemRenderer> <fx:Component> <mx:LinkButton toolTip="删除" click="outerDocument.deleteUser(event)" icon="@Embed('/image/delete.gif')"> </mx:LinkButton> </fx:Component> </mx:itemRenderer> </mx:DataGridColumn> </locdg:columns> </locdg:DoubleClickDataGrid> <s:Button x="491" y="189" label="取数据" click="click_handler(event)" /> <s:RichText x="606" y="189" id="info" text="点击按钮取数据"/> <mx:Form x="163" y="72" borderStyle="solid" borderVisible="true"> <mx:FormItem label="用户名" borderStyle="solid" borderVisible="true"> <s:TextInput id="username" /> </mx:FormItem> <mx:FormItem label="密码" borderStyle="solid" borderVisible="true"> <s:TextInput id="password"/> </mx:FormItem> </mx:Form> <s:Button x="444" y="100" label="添加" click="adduser_handler(event)"/> <s:RichText x="544" y="100" id="addinfo" text="请添加"/> </s:Application>

源码下载

flex与java实现增删改查相关推荐

  1. flex于java实现增删改查

    用的是MySQL数据库. 1,建一个userdb库,再建userinfo表,字 段:id(int),username(varchar),password(varchar). view plaincop ...

  2. 极客技术专题【003期】:java mvc 增删改查 自动生成工具来袭

    日期:2013-4-17  来源:GBin1.com 技术专题介绍 分享专题:java mvc 增删改查 自动生成工具来袭 分享人:激情燃烧的UI 授课时间:2013/04/19  21:00-22: ...

  3. HBase java 的增删改查

    HBase java 的增删改查 . 目前来看好像是我的最全了,应该是大佬不屑于写这种的吧 . 其实本来想写很多方法的,但是写着写着就有点烦了,再加上本人也不全是闲人一个,然后就给停了,看着有点乱,但 ...

  4. java mongodb 增删改查_java操作mongodb:基本的增删改查

    java操作mongodb的代码,包含基本的增删改查操作 获取数据库连接工具类 package com.liuc.db;import java.net.UnknownHostException;imp ...

  5. java pdf增删改查_如何利用Java代码操作索引库?

    今天是刘小爱自学Java的第161天. 感谢你的观看,谢谢你. 学习计划安排如下: 学了几天的Elasticserch,但都是它本身的知识点,如何通过Java语言去操作它呢? 这就好比以前学数据库,在 ...

  6. java定时任务增删改查_python实现crontab定时任务的增删改查

    python实现crontab定时任务的增删改查 python实现crontab定时任务的增删改查 本人主要业务方向是后台,在开发不同版本迭代或者项目的部署时,每次都手动去创建cron定时任务,很不符 ...

  7. java addservlet_servlet增删改查

    Servlet 使用Servlet进行增删改查 步骤 1.  导入以下几个jar包到WEB-INF下的lib包里,必要时build path,其中jstl.jar和standard.jar是使用jst ...

  8. java实现增删改查_java大作业,实现学生信息增删改查

    [实例简介] 编写Web应用程序(JavaEE平台上的应用,能够运行在Tomcat服务器上),实现学生信息的增删改查. 在Web页面上实现添加一个学生记录,删除某个学生记录,修改某个学生记录,和按照姓 ...

  9. JAVA JDBC 增删改查简单例子

    1.数据库配置文件jdbc.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username= ...

最新文章

  1. opencv 无法找到tbb_debug.dll
  2. Hibernate 配置C3P0 连接池
  3. 区块链BaaS云服务(17)纸贵科技Z-BaaS平台“跨链”
  4. Python学习:函数
  5. 13 个开源备份解决方案
  6. Java语法基础学习DayNineteen(反射机制)
  7. PHP Filesystem
  8. 30道Linux面试题
  9. 2020-11-30 04_机器视觉中的特征提取与描述
  10. CentOS(Linux)安装KETTLE教程 并配置执行定时任务
  11. matlab 模的平方,RSA模重复平方算法小示例
  12. 为什么没什么人玩呢?凰华学院主校剧情有感
  13. 主板装机测试软件,主板检测工具:PSPident v0.74.1版发布
  14. Intel汇编-无符号整数的乘法操作
  15. Sobel和Roberts算子的推导过程
  16. 最安全的邮箱-Gmail
  17. Python实现发送邮件(实现单发/群发邮件验证码)
  18. RW、RO、ZI段的含义
  19. Accelstepper 库中的参数计算公式
  20. 浅析Draw Call

热门文章

  1. 《Visual C++数字图像模式识别技术详解(第2版)》一3.4 形状特征
  2. DBA巡检常用的SQL语句
  3. TPS(薄板样条) 2D 插值
  4. Java常见问题汇总
  5. PUT or POST
  6. Linux系统管理的基本入手点
  7. Ubuntu软件包deb的安装.
  8. candy算子python_Python-计算机视觉中的Canny边缘检测方法
  9. 基于hibernate实现的分页技术
  10. setup hadoop 1.2.1 on Mac