flex3读书笔记----flex整合hibernate_第1页
flex3读书笔记----flex整合hibernate_第2页
flex3读书笔记----flex整合hibernate_第3页
flex3读书笔记----flex整合hibernate_第4页
flex3读书笔记----flex整合hibernate_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、开发环境的搭建IDE的版本:FlexBuilder3+mysql-5.0.20-win32(绿化版)+apache-tomcat-6.0.20(绿化版)+MyEclipse Blue Edition6.5.0在myeclipse中新建一个web项目File-àNew-àWeb Project-à输入项目名称(Fei)-à版本选最高的Java EE 5.0-à点击Finish完成后的web 项目的目录结构从网上下载blazeds.war文件-à改后缀(改为blazeds.rar)-à解压当前blazeds.rar文件,会出现两

2、个文件夹选中这两个文件夹-à复制-à回到myeclipse中-à鼠标点击项目的WebRoot文件夹-à按组合键CTRL+V-à会有一个探出框选择Yes To All覆盖之后的两个文件夹的目录结构把项目部署到Tomcat去点击Finish之后,myeclipse端的操作就暂告一段落了(这时的tomcat还没run)接下来打开FlexBuilder3新建flex项目FileàNew Flex Projectà输入项目名称(FeiFlex)-à后台类型选择J2EE-点击Next-àRoot Folder这一栏选

3、择tomcat安装路径下的webapps文件夹下的刚才myeclipse刚部署上去的web项目(Fei)确定之后的截图点击Validate Configuration验证服务器是否启动,如果没启动就会出现如下警告信息这时,回到myeclipse启动tomcat(Fei项目之前已经部署上去的了)Tomcat启动之后的截图回到FlexBuilder3再次点击验证服务器,这时得到的验证信息结果是:点击Finish,完成了myeclipse+ FlexBuilder3的环境搭建环境搭建好之后,自然的就会想到小试一下牛刀后台采用的是hibernate实现持久化打开mysql管理工具,新建数据库名(jik

4、e),新建表(supermanager)有了数据库和表之后就可以在myeclipse中建包了项目包结构截图lib包是放mysql驱动包和hibernate的jar包从网上下载mysql的驱动jar包和hibernate的jar包Jar文件截图CTRL+A把下载来的jar全选-àCTRL+C(复制)-à去到myeclipse编辑器中,点击lib包-àCTRL+V(黏贴)-à这样全部jar就已经加入了工程中(还没导入,这些jar还不能用)-à用鼠标点击项目名,选最后一项(Properties)-à会弹出一个对话框点击Java Build

5、Path -à选择Libraries-àAdd JARs-à把你src文件夹下的lib包里面的jar全部导入工程中去这时lib包这样显示的代表导入成功看似是空文件夹一样的效果导入必要的jar后,就可以写实体类了Pojo包就是放实体类的文件夹(这里以supermanager类为列)package pojo;public class SuperManager private int id;/对应数据库supermanager表的idprivate String userName;/ 对应数据库supermanager表的nameprivate String passw

6、ord;/ 对应数据库supermanager表的passwordpublic int getId() return id;public void setId(int id) this.id = id;public String getUserName() return userName;public void setUserName(String userName) this.userName = userName;public String getPassword() return password;public void setPassword(String password) this

7、.password = password; hbm文件夹是放实体类与数据库表的映射文件SuperManager.hbm.xml的文件内容如下 cfg文件夹是放hibernate的主配置文件Hibernate.cfg.xml文件内容如下<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-/Hibernate/Hibernate Configuration DTD 3.0/EN" "<hibernate-

8、configuration><session-factory><!- 数据库连接配置-><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql:/localhost:3306/jike</property><property name="connection.username"&

9、gt;root</property><property name="connection.password"></property><!- 连接池配置 -><property name="connection.pool_size">1</property><!- 不同数据库使用的SQL选择:方言 -><property name="dialect">org.hibernate.dialect.MySQLDialect</propert

10、y><!-决定是采用thread或jta或自定义的方式来产生session -><property name="current_session_context_class">thread</property><!-二级缓存策略 -><property name="vider_class">org.hibernate.cache.NoCacheProvider</property><!- 是否在控制台上打印SQL -><property nam

11、e="show_sql">true</property><!- 是否根据配置自动创建库表 -><!-<property name="hbm2ddl.auto">create</property>-><mapping resource="hbm/SuperManager.hbm.xml"/></session-factory></hibernate-configuration>接下来就剩下最后一个包了connFlex,这个包是放与fle

12、x建立连接映射的类package connFlex;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import pojo.SuperManager;public class QuerySuperManager /验证登陆public List<SuperManager

13、> LoginSuperManagerConn(SuperManager s)System.out.println("xxxxx");List<SuperManager> list=null;Configuration config= new Configuration();/通过Configuration去加载主配置文件config.configure("cfg/Hibernate.cfg.xml");/建立SessionFactory会话工厂SessionFactory sf= config.buildSessionFactory(

14、);/建立Session会话Session session=sf.openSession();/如果要进行增删改的动作,那么要开启事务Transaction t= session.beginTransaction();try/插入的操作,通过Session对象去操作/如果hbm映射配置文件中有指明主键生成的策略方式,Query q = session.createQuery("select sm from SuperManager sm where "+"sm.userName='"+s.getUserName()+"'&quo

15、t;);list=q.list();/执行插入的操作/session.save(fa);/如果成功操作,那么提交mit();catch(Exception e)/否则操作不成功,那么回滚数据t.rollback();e.printStackTrace();finallysession.close();sf.close();return list;以上就是java后台的全部代码类下面一步是关键步骤在myeclipse中找到项目webRoot文件夹下的flex文件夹的remoting-config.xml打开这个文件remoting-config.xml文件内容如下<?xml version

16、="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

17、="true"/> </adapters> <default-channels> <channel ref="my-amf"/> </default-channels> <destination id="querySuperManagerConn"> <properties> <source>connFlex.QuerySuperManager</source> </properties> </destination

18、></service>这样写之后connFlex下的QuerySuperManager这个类我们在flex的页面中就可以用了通过以上的配置之后,myeclipse的步骤操作完毕既然后台代码已经全部搞定,接下来自然而然的,就是写flex前台代码了我用的是最简单的方式跟后台交互,如果要开发商业代码的话,听说一般是用的是Cairngorm.swc这个框架结合spring+hibernate,当然这个网上资料很多,我相信只要是小小入门的人都能掌握,只是前端又多了一个flex的mvc。废话不多说,马上进入前端代码的编写要实现的是登陆功能前台项目包结构先在flex项目中新建一个entit

19、y包(用来放flex的实体类)实体类代码如下:package entity /这句是让前台的实体类与台 /的实体类对应RemoteClass(alias="pojo.SuperManager")public class SuperManagerpublic function SuperManager() public var id:int;/对应后台实体类的idpublic var userName:String;/对应后台实体类的userNamepublic var password:String;/对应后台的password首先是写登陆框的代码Fileànew

20、 一个新的mxml文件,命名为LoginWindow.mxml全部页面代码如下:<?xml version="1.0" encoding="utf-8"?><mx:TitleWindow xmlns:mx=" layout="absolute" width="400" height="300" title="登录" fontSize="18" close="this.close()" xmlns:mappin

21、g="mapping.*" creationComplete=""><mx:Script><!CDATAimport mx.rpc.events.ResultEvent;import .navigateToURL;import mx.managers.PopUpManager;import mx.controls.Alert; import mx.events.MenuEvent; import mx.collections.*; import mx.rpc.events.FaultEvent; import mx.rpc.eve

22、nts.ResultEvent; import entity.*; Bindable public var userNameInPop:TextInput; Bindable public var userEmailInPop:TextInput; Bindable private var linkData30:ArrayCollection = new ArrayCollection();/验证登陆的数据public function close():void /Alert.show("关闭登录窗口");PopUpManager.removePopUp(this);pub

23、lic function queryStudent():void/navigateToURL(new URLRequest('http:/localhost:8080/StudentMangerSystem/bin-debug/Fei.html'),'_blank'),public function Login():voidvar tempSm:SuperManager=new SuperManager();tempSm.userName=UserName.text;tempSm.password=userPassword.text; /下面这句代码是调用后台的

24、LoginSuperManagerConn函数,同时把前台的/一个SuperManager实体类对象传到后台remoteObject30.LoginSuperManagerConn(tempSm) /登陆 /这个是执行了Login函数的回调函数 private function resultHandler30(event:ResultEvent):void var ac: ArrayCollection = event.result as ArrayCollection; / if(ac.length>0) Alert.show("验证成功"); this.close

25、(); else Alert.show("验证失败,请重新输入"); /这个是执行了Login函数后台出现异常或者错误的回调函数private function faultHandler30(event:FaultEvent):void Alert.show(event.fault.toString(),"提示");></mx:Script><mx:VBox paddingLeft="37" paddingTop="80"><mx:HBox paddingLeft="3

26、7" paddingTop="5"> <mx:Label text="用户名:"/> <mx:TextInput paddingLeft="7" color="#991010" id="UserName" text=""/> </mx:HBox> <mx:HBox paddingLeft="37" paddingTop="5"> <mx:Label text=&quo

27、t; 密 码 :"/> <mx:TextInput paddingLeft="7" color="#991010" id="userPassword" text="" displayAsPassword="true"/> </mx:HBox> </mx:VBox> <mx:ControlBar height="60" width="300"><mx:ComboBox prompt=&qu

28、ot;身 份 " width="100%"><mx:dataProvider><mx:Array><mx:Object label="超级管理员"/><mx:Object label="普通管理员"/><mx:Object label="学生"/><mx:Object label="老师"/></mx:Array></mx:dataProvider></mx:ComboBox&g

29、t;<mx:Button label="确认" paddingLeft="85" click="this.Login()"/><mx:Spacer width="250"/></mx:ControlBar><mx:RemoteObject id="remoteObject30" destination="querySuperManagerConn"/这个destination是在/ remoting-config.xml的destin

30、ation的id source="connFlex.QuerySuperManager"result="resultHandler30(event)"/正常回调函数fault="faultHandler30(event)"/>/出现异常回调函数</mx:TitleWindow>再就是新建一个index.mxml文件代码内容如下:<?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx=&quo

31、t; layout="absolute" themeColor="0x000000"initialize="" xmlns:local="*" creationComplete="this.showTitleWin()"> <mx:Script> <!CDATA import mx.events.MenuEvent; import mx.controls.Alert; import mx.collections.*; import mx.managers.PopUpMan

32、ager; import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.collections.ArrayCollection; import entity.*; import flash.display.Sprite; / 登陆窗口 public function showTitleWin():void var twin:LoginWindow=LoginWindow(PopUpManager.createPopUp(this,LoginWindow,true); twin.userNameInPo

33、p=userName; twin.userEmailInPop=email; PopUpManager.centerPopUp(twin); ></mx:Script></mx:Application>K.O,这样一个简单的登陆功能就实现了,要是有过小小开发经验的人,都会知道,调用后台对应的方法,同时把一个对象作为参数,那就相当于把后台的增、删、改操作都完成了。无图无真相,下面是我的登陆功能的结果截图登陆失败的截图登陆成功后的截图点击ok后,就会进入index页面Flex页面展示数据一般用的是Datagrid控件/ this.linkData30这个是跟前面的一样

34、/private var linkData30:ArrayCollection = new ArrayCollection();RemoteObject对象每执行一次都会有一个回调函数,接受后台返回的list。你只要在回调函数中这样写,This.linkData30=event.result as ArrayCollection;因为flex都是异步的,当返回有数据时,datagrid就会显示数据了,只要绑定好数据源就ok<mx:DataGrid id="myDG" dataProvider="this.linkData30" creationComplete="" width="507" height="300" fontSize="20" itemClick="

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论