连接数据库:
package com.db;
import java.sql.*;
public class DBUtlie {
private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL="jdbc:sqlserver://127.0.0.1:1433;databaseName=mytest";
private static final String USER="sa";
private static final String PWD="123";
private Connection con=null;
public Connection getConnection(){
try{
Class.forName(DRIVER);
con=DriverManager.getConnection(URL,USER,PWD);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
}
实体类:
package com.pojo;
public class Student {
private int sid;
private String sname;
private String ssex;
private String saddress;
private String sremark;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
public String getSaddress() {
return saddress;
}
public void setSaddress(String saddress) {
this.saddress = saddress;
}
public String getSremark() {
return sremark;
}
public void setSremark(String sremark) {
this.sremark = sremark;
}
}
dao类:
package com.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.db.DBUtlie;
import com.pojo.Student;
public class StudentDao {
private Connection con = null;
private PreparedStatement ps;
private ResultSet rs;
//查询所有
public Student[] getStudent(){
Student[] stuList=null;
ArrayList<Student> list=null;
try{
list=new ArrayList<Student>();
con = new DBUtlie().getConnection();
String sql="select * from student";
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
Student student=new Student();
student.setSid(rs.getInt("sid"));
student.setSname(rs.getString("sname"));
student.setSsex(rs.getString("ssex"));
student.setSaddress(rs.getString("saddress"));
student.setSremark(rs.getString("sremark"));
list.add(student);
}
stuList=new Student[list.size()];
for(int i=0;i<stuList.length;i++){
stuList[i]=list.get(i);
}
}catch(Exception e){
e.printStackTrace();
}finally {
try {
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return stuList;
}
//查找单个对象
public Student findStudent(Student stu){
Student student=null;
try{
con = new DBUtlie().getConnection();
String sql="select * from student where sid=?";
ps=con.prepareStatement(sql);
ps.setInt(1, stu.getSid());
rs=ps.executeQuery();
while(rs.next()){
student=new Student();
student.setSid(rs.getInt("sid"));
student.setSname(rs.getString("sname"));
student.setSsex(rs.getString("ssex"));
student.setSaddress(rs.getString("saddress"));
student.setSremark(rs.getString("sremark"));
}
}catch(Exception e){
e.printStackTrace();
}finally {
try {
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return student;
}
//添加
public void addStudent(Student stu){
try{
String sql="insert into student values(?,?,?,?);";
con=new DBUtlie().getConnection();
ps=con.prepareStatement(sql);
ps.setString(1, stu.getSname());
ps.setString(2, stu.getSsex());
ps.setString(3, stu.getSaddress());
ps.setString(4, stu.getSremark());
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally {
try {
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//修改
public void updateStudent(Student stu){
try{
String sql="update student set sname=?,ssex=?,saddress=?,sremark=? where sid=?";
con=new DBUtlie().getConnection();
ps=con.prepareStatement(sql);
ps.setString(1, stu.getSname());
ps.setString(2, stu.getSsex());
ps.setString(3, stu.getSaddress());
ps.setString(4, stu.getSremark());
ps.setInt(5, stu.getSid());
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally {
try {
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//删除
public void deleteStudent(Student stu){
try{
String sql="delete from student where sid=?";
con=new DBUtlie().getConnection();
ps=con.prepareStatement(sql);
ps.setInt(1, stu.getSid());
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally {
try {
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
flex:
student.as:
package com.student
{
[RemoteClass(alias="com.pojo.Student")]
public class Student
{
public function Student()
{
}
public var sid:int;
public var sname:String;
public var ssex:String;
public var saddress:String;
public var sremark:String;
}
}
remoting-config.xml:
<?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="studentdao">
<properties>
<source>com.dao.StudentDao</source>
</properties>
</destination>
</service>
student.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" creationComplete="intoAll()" >
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.managers.CursorManager;
import com.student.Student;
private function intoAll():void{
remote.getStudent();
}
private function getStudentAll(e:ResultEvent):void{
date.dataProvider = e.result as Array;
}
private function add():void{
var stu:Student = new Student();
if(sname.text!="" && ssex.text!="" && saddress.text!=""){
stu.sname = sname.text;
stu.ssex = ssex.text;
stu.saddress=saddress.text;
stu.sremark=sremark.text;
remote.addStudent(stu);
}else{
Alert.show("[请输入姓名] 或者 [请输入性别] 或者 [请输入地址]?");
}
}
private function saveStudentResult(e:ResultEvent):void{
this.intoAll();
}
//删除方法一
public function delStu(data:Student):void{
remote.deleteStudent(data);
}
//删除方法二
/* public function delStu():void{
var stu:Student = new Student();
stu.sid= date.selectedItem.sid
remote.deleteStudent(stu);
} */
private function delStudentResult(e:ResultEvent):void{
this.intoAll();
Alert.show("删除成功");
}
public function updateStudent(data:Student):void{
remote.updateStudent(data);
}
private function updateStudentResult(e:ResultEvent):void{
this.intoAll();
Alert.show("修改成功");
}
]]>
</mx:Script>
<mx:RemoteObject id="remote" destination="studentdao">
<mx:method name="getStudent" result="getStudentAll(event);"/>
<mx:method name="addStudent" result="saveStudentResult(event);"/>
<mx:method name="deleteStudent" result="delStudentResult(event);"/>
<mx:method name="updateStudent" result="updateStudentResult(event);"/>
</mx:RemoteObject>
<mx:Button x="451" y="357" label="getData" click="intoAll();" height="26"/>
<mx:DataGrid id="date" x="28" y="23" width="500" height="300" editable="true">
<mx:columns>
<mx:DataGridColumn headerText="id" dataField="sid" editable="false"/>
<mx:DataGridColumn headerText="name" dataField="sname" editable="true"/>
<mx:DataGridColumn headerText="sex" dataField="ssex" editable="true"/>
<mx:DataGridColumn headerText="address" dataField="saddress" editable="true"/>
<mx:DataGridColumn headerText="remark" dataField="sremark" editable="true"/>
<mx:DataGridColumn headerText="删除" width="80" editable="false" >
<mx:itemRenderer>
<mx:Component>
<mx:Button label="del" click="parentDocument.delStu(data);">
</mx:Button>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="修改" width="80" editable="false" >
<mx:itemRenderer>
<mx:Component>
<mx:Button label="update" click="parentDocument.updateStudent(data);">
</mx:Button>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
<mx:Form x="657" y="23" width="300" height="170">
<mx:FormItem label="姓名">
<mx:TextInput id="sname"/>
</mx:FormItem>
<mx:FormItem label="性别">
<mx:TextInput id="ssex"/>
</mx:FormItem>
<mx:FormItem label="地址">
<mx:TextInput id="saddress"/>
</mx:FormItem>
<mx:FormItem label="备注">
<mx:TextInput id="sremark"/>
</mx:FormItem>
</mx:Form>
<mx:Button x="882" y="224" label="addData" click="add();" />
</mx:Application>
初学flex,做个flex与Java通信的小实例,供大家参考和探讨。
package com.db;
import java.sql.*;
public class DBUtlie {
private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static final String URL="jdbc:sqlserver://127.0.0.1:1433;databaseName=mytest";
private static final String USER="sa";
private static final String PWD="123";
private Connection con=null;
public Connection getConnection(){
try{
Class.forName(DRIVER);
con=DriverManager.getConnection(URL,USER,PWD);
}catch(Exception e){
e.printStackTrace();
}
return con;
}
public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (SQLException se) {
se.printStackTrace();
}
}
}
实体类:
package com.pojo;
public class Student {
private int sid;
private String sname;
private String ssex;
private String saddress;
private String sremark;
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
public String getSaddress() {
return saddress;
}
public void setSaddress(String saddress) {
this.saddress = saddress;
}
public String getSremark() {
return sremark;
}
public void setSremark(String sremark) {
this.sremark = sremark;
}
}
dao类:
package com.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.db.DBUtlie;
import com.pojo.Student;
public class StudentDao {
private Connection con = null;
private PreparedStatement ps;
private ResultSet rs;
//查询所有
public Student[] getStudent(){
Student[] stuList=null;
ArrayList<Student> list=null;
try{
list=new ArrayList<Student>();
con = new DBUtlie().getConnection();
String sql="select * from student";
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
Student student=new Student();
student.setSid(rs.getInt("sid"));
student.setSname(rs.getString("sname"));
student.setSsex(rs.getString("ssex"));
student.setSaddress(rs.getString("saddress"));
student.setSremark(rs.getString("sremark"));
list.add(student);
}
stuList=new Student[list.size()];
for(int i=0;i<stuList.length;i++){
stuList[i]=list.get(i);
}
}catch(Exception e){
e.printStackTrace();
}finally {
try {
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return stuList;
}
//查找单个对象
public Student findStudent(Student stu){
Student student=null;
try{
con = new DBUtlie().getConnection();
String sql="select * from student where sid=?";
ps=con.prepareStatement(sql);
ps.setInt(1, stu.getSid());
rs=ps.executeQuery();
while(rs.next()){
student=new Student();
student.setSid(rs.getInt("sid"));
student.setSname(rs.getString("sname"));
student.setSsex(rs.getString("ssex"));
student.setSaddress(rs.getString("saddress"));
student.setSremark(rs.getString("sremark"));
}
}catch(Exception e){
e.printStackTrace();
}finally {
try {
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return student;
}
//添加
public void addStudent(Student stu){
try{
String sql="insert into student values(?,?,?,?);";
con=new DBUtlie().getConnection();
ps=con.prepareStatement(sql);
ps.setString(1, stu.getSname());
ps.setString(2, stu.getSsex());
ps.setString(3, stu.getSaddress());
ps.setString(4, stu.getSremark());
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally {
try {
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//修改
public void updateStudent(Student stu){
try{
String sql="update student set sname=?,ssex=?,saddress=?,sremark=? where sid=?";
con=new DBUtlie().getConnection();
ps=con.prepareStatement(sql);
ps.setString(1, stu.getSname());
ps.setString(2, stu.getSsex());
ps.setString(3, stu.getSaddress());
ps.setString(4, stu.getSremark());
ps.setInt(5, stu.getSid());
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally {
try {
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//删除
public void deleteStudent(Student stu){
try{
String sql="delete from student where sid=?";
con=new DBUtlie().getConnection();
ps=con.prepareStatement(sql);
ps.setInt(1, stu.getSid());
ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally {
try {
ps.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
flex:
student.as:
package com.student
{
[RemoteClass(alias="com.pojo.Student")]
public class Student
{
public function Student()
{
}
public var sid:int;
public var sname:String;
public var ssex:String;
public var saddress:String;
public var sremark:String;
}
}
remoting-config.xml:
<?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="studentdao">
<properties>
<source>com.dao.StudentDao</source>
</properties>
</destination>
</service>
student.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" creationComplete="intoAll()" >
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
import mx.managers.CursorManager;
import com.student.Student;
private function intoAll():void{
remote.getStudent();
}
private function getStudentAll(e:ResultEvent):void{
date.dataProvider = e.result as Array;
}
private function add():void{
var stu:Student = new Student();
if(sname.text!="" && ssex.text!="" && saddress.text!=""){
stu.sname = sname.text;
stu.ssex = ssex.text;
stu.saddress=saddress.text;
stu.sremark=sremark.text;
remote.addStudent(stu);
}else{
Alert.show("[请输入姓名] 或者 [请输入性别] 或者 [请输入地址]?");
}
}
private function saveStudentResult(e:ResultEvent):void{
this.intoAll();
}
//删除方法一
public function delStu(data:Student):void{
remote.deleteStudent(data);
}
//删除方法二
/* public function delStu():void{
var stu:Student = new Student();
stu.sid= date.selectedItem.sid
remote.deleteStudent(stu);
} */
private function delStudentResult(e:ResultEvent):void{
this.intoAll();
Alert.show("删除成功");
}
public function updateStudent(data:Student):void{
remote.updateStudent(data);
}
private function updateStudentResult(e:ResultEvent):void{
this.intoAll();
Alert.show("修改成功");
}
]]>
</mx:Script>
<mx:RemoteObject id="remote" destination="studentdao">
<mx:method name="getStudent" result="getStudentAll(event);"/>
<mx:method name="addStudent" result="saveStudentResult(event);"/>
<mx:method name="deleteStudent" result="delStudentResult(event);"/>
<mx:method name="updateStudent" result="updateStudentResult(event);"/>
</mx:RemoteObject>
<mx:Button x="451" y="357" label="getData" click="intoAll();" height="26"/>
<mx:DataGrid id="date" x="28" y="23" width="500" height="300" editable="true">
<mx:columns>
<mx:DataGridColumn headerText="id" dataField="sid" editable="false"/>
<mx:DataGridColumn headerText="name" dataField="sname" editable="true"/>
<mx:DataGridColumn headerText="sex" dataField="ssex" editable="true"/>
<mx:DataGridColumn headerText="address" dataField="saddress" editable="true"/>
<mx:DataGridColumn headerText="remark" dataField="sremark" editable="true"/>
<mx:DataGridColumn headerText="删除" width="80" editable="false" >
<mx:itemRenderer>
<mx:Component>
<mx:Button label="del" click="parentDocument.delStu(data);">
</mx:Button>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="修改" width="80" editable="false" >
<mx:itemRenderer>
<mx:Component>
<mx:Button label="update" click="parentDocument.updateStudent(data);">
</mx:Button>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
<mx:Form x="657" y="23" width="300" height="170">
<mx:FormItem label="姓名">
<mx:TextInput id="sname"/>
</mx:FormItem>
<mx:FormItem label="性别">
<mx:TextInput id="ssex"/>
</mx:FormItem>
<mx:FormItem label="地址">
<mx:TextInput id="saddress"/>
</mx:FormItem>
<mx:FormItem label="备注">
<mx:TextInput id="sremark"/>
</mx:FormItem>
</mx:Form>
<mx:Button x="882" y="224" label="addData" click="add();" />
</mx:Application>
初学flex,做个flex与Java通信的小实例,供大家参考和探讨。