999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于J2EE技術實現J2ME嵌入式系統訪問的網絡數據庫

2010-12-31 00:00:00
考試周刊 2010年30期

摘 要: 隨著手機功能的增強,通過無線網絡訪問企業數據庫的移動數據庫應用必然會進一步發展以提供更多的功能,同時其開發也會變的越來越復雜。本文通過研究J2ME和J2EE技術架構的特點,提出一套完整的移動設備訪問數據庫解決方案,詳細解析了移動客戶端和服務器端的設計方案,對移動查詢系統的架構、J2ME客戶端的實現和使用Hibernate連接數據庫進行了完整的剖析。

關鍵詞: J2ME J2EE 嵌入 Hibernate

1.前言

數據庫操作是現在項目開發的根本?,F在不管用什么語言編寫程序,一般都會涉及數據庫的連接,那么在使用J2ME開發平臺編寫手機應用程序的過程中也避免不了要涉及數據庫的連接。J2EE是一種用于建立服務器應用程序的系統平臺,它被定義為開發、部署、管理多層以網絡和組件技術為基礎、以服務器端為中心的企業級應用提供的開放的標準平臺。在這里本文主要用到了Hibernate。Hibernate是一個高性能的ORM持久性和查詢服務。Hibernate是Java應用和關系數據庫之間的橋梁,它負責Java對象和關系數據之間的映射。Hibernate內部封裝了通過JDBC訪問數據庫的操作,向上層應用提供了面向對象的數據訪問的API。以下是我在開發J2ME過程中的一點體會,希望能得到大家的指點。

2.系統設計思路

在這樣的中大型項目中,首先要設計完善的公共類,包括可繼承的控件基類、資源類、Hibernate業務邏輯類、Hibernate配置文件等。公共類要提供各種所需的API讓程序調用。Hibernate業務邏輯類主要提供訪問數據庫中指定行列數據、保存指定記錄到數據庫、排序現有記錄等的各種API。公共類還要求高度獨立,可以移植到其它類似數據席的應用中去。其次,設計統一的應用層架構,使不同的開發人員在相同的模式下進行開發,便于管理和查錯。

在本文討論的項目中,描述一個最簡單流程為:用戶在手機端進入某個查詢界面。通過選擇和錄入等方式設置查詢條件。查詢條件被發送至服務器。在服務器端有相應Servlet類接收手機發送的數據,調用Hibernate業務邏輯類操作數據庫,并將返回的結果集返回到手機客戶端并顯示。流程如下圖:

3.手機通過Servlet 與Web 服務器通信

圖2表示了手機客戶端程序MIDlet通過與Web服務器上Servlet 的交互完成訪問網絡數據庫示意圖:

基于J2ME平臺開發手機客戶端程序,支持打開網絡連接、傳送數據、訪問遠程服務器但,并不支持直接訪問數據庫的能力。因此,我們需要編寫一套服務器端程序來接受手機客戶端的請求指令,通過解析請求、調用Hibernate業務邏輯類、響應結果的方式把數據再傳回給手機。

4.JAVA手機訪問數據庫的實現

4.1實例描述

下面是一個J2ME與Servlet結合實現仿真手機查詢計算機考試成績的例子。用戶在手機端輸入要查詢的學生學號、密碼,Midlet 程序將參數傳送Web服務器端Servlet,Servlet程序根據傳來的學號、密碼,通過Hibernate連接數據庫服務器mysql,將讀取的學生成績信息以UF8格式編碼傳送給手機端Midlet程序。以下為Midlet 和Servlet的主要代碼。

4.2 開發手機客戶端Midlet

public void commandAction(Command c,Displayable s){

Form form1 = new Form(\"查詢結果\") ; //建立查詢結果界面

display.setCurrent(form1) ;

StringBuffer sb=new StringBuffer();

String stid=tf.getString();//獲取文本框中所輸入的學號

String url=\"http://127.0.0.1:8080/servlet/

ServletScore?stid=\"+stid;

HttpConnection conn =1; DataInputStream in=1;

try{ conn =(HttpConnection)Connector.open(url);

in= conn.openDataInputStream();

String ok=in.readUTF();

if(ok.equals(\"find\")){//將查詢結果放入sb

sb.append(\"學號\"+in.readUTF()+\"\\");

}else {sb.append(in.readUTF()+\"\\");}

}catch (Exception e){ sb.append(e.toString());

}finally{

try{

if(in!=1)in.close();

if(conn!=1)conn.close();

}catch(java.io.IOException ioe){}

}

form1.append(sb.toString());//顯示成績信息

}

4.3 開發服務器端響應servlet

Servlet的doPost方法代碼如下:

DataOutputStream out = new DataOutputStream(new

BufferedOutputStream(response.getOutputStream()));

String stid=request.getParameter(\"stid\");

TestUser tu = new TestUser();

User user = new User();

User=tu.getUser(stid);

If(user != 1){

String tycj =user.getTyjc();

String whcj =user.getWhjc();

String ok=\"find\";

out.writeUTF(ok);

out.writeUTF(tycj);

out.writeUTF(whcj);

}

4.4 Hibernate連接MySql數據庫的配置

Hibernate配置文件主要用于配置數據庫連接和Hibernate運行時所需的各種屬性,這個配置文件應該位于應用程序或Web程序的類文件夾classes中。Hibernate配置文件支持兩種形式,一種是xml格式的配置文件,另一種是Java屬性文件格式的配置文件,采用“鍵=值”的形式。建議采用xml格式的配置文件。xml配置文件可以直接對映射文件進行配置,并由Hibernate自動加載,而prop-erties文件則必須在程序中通過編碼加載映射文件。兩種配置方式的使用方法類似,本文主要以第一種方式為主詳細介紹如下:

Hibernate默認的xml格式的配置文件名稱為hibernate.cfg.xml。下面是連接MySql的Hibernate的xml配置文件。

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/stumanage

root

root

org.hibernate.dialect.MySQLDialect

org.hibernate.transaction.JDBCTransactionFactory

true

在上面的代碼中,\"localhost\"代表本地MySQL服務器,如果想連接其他服務器可以修改為要連接的MySQL服務器的名稱;\"stumanage\"為要連接的數據庫名稱;\"root\"為登錄用戶名;\"root\"表示用戶密碼;\"org.hibernate.transaction.JDBCTransaction

\"Factory\"表示采用JDBC的事務處理機制;\"UserForm.hbm.xml\"為持久化類對應的映射文件名稱。

4.5 hibernate-MySQL配置文件及簡單應用(CRUD)

User.hbm.xml 配置如下:

not-1=\"true\" />

DAO類核心代碼如下:

public User getUser(String User_id){

Session session = sessionFactory.openSession();

Transaction tx = 1; User user = 1;

try{

tx = session.beginTransaction();

Query query = session.createQuery(\"from User where id = \" + User_id);

List list = query.list();

Iterator it = list.iterator();

while (it.hasNext()){ user = it.next();}

tx.commit();

} catch (Exception e) { tx.rollback();

} finally{ session.close();}

return user;

}

4.6程序運行結果

編寫編譯servlet程序并放到相應的servlet目錄。啟動Web服務器,啟動mysql數據庫服務器,運行J2MEWTK的ktoolbar,建立項目編寫手機端代碼,編譯后選擇defaultphone手機模擬器,運行界面如圖3所示,在第一個界面輸入要查的學號,點擊OK,即可訪問服務器端ServletScore,獲得查詢結果。

5.結語

目前基于J2ME手機的移動信息管理和數據應用都比較簡單,但隨著網絡和硬件功能的增強,出現類似于臺式機數據庫系統復雜度的移動應用將會越來越多。本文提出了一種輕量級的移動電子商務開發架構,充分利用J2ME和J2EE技術各自的特點,將兩者有機結合起來,開發出輕便的J2ME客戶端和J2EE服務器端,從而來滿足企業級商業平臺開發的需要,對移動數據信息集成具有一定的實用參考意義。

參考文獻:

[1]唐潤華,章璐,劉外喜.基于J2ME-J2EE移動集成查詢系統的設計與實現.科學技術與工程,2008,8,(1):87-89.

[2]唐自仰,張克君.基于J2ME/Servlet的手機聊天系統.計算機工程,2009,35,(10):262-263.

[3]宋漢增,沈琳.利用Hibernate對象持久化服務簡化Java數據庫訪問.計算機應用,2003,23,(12):135-137.

主站蜘蛛池模板: 国产精品私拍在线爆乳| 欧美精品一区在线看| 四虎永久免费在线| 91视频99| 欧美第一页在线| 91久久夜色精品国产网站| 国产精品大尺度尺度视频| 黄色一及毛片| 亚洲国产精品无码AV| 国产欧美日本在线观看| 天天色综网| 人人妻人人澡人人爽欧美一区 | 99热亚洲精品6码| 久久青青草原亚洲av无码| 老色鬼欧美精品| 青青操国产| 国产91高跟丝袜| 免费国产小视频在线观看| 青青操视频免费观看| 国产色偷丝袜婷婷无码麻豆制服| 免费毛片视频| 亚洲中字无码AV电影在线观看| 波多野结衣亚洲一区| 一区二区午夜| 久热中文字幕在线| 女同国产精品一区二区| 国产丰满大乳无码免费播放| a毛片在线播放| 青青草国产精品久久久久| 久久99精品久久久大学生| 成人夜夜嗨| 99久久成人国产精品免费| 国产又粗又猛又爽视频| 国产素人在线| 高清码无在线看| 国产成人综合亚洲网址| 亚洲无线一二三四区男男| 亚洲日韩在线满18点击进入| 美女潮喷出白浆在线观看视频| 毛片视频网址| 国产精品极品美女自在线网站| 亚洲一区毛片| 日本免费高清一区| 亚洲视屏在线观看| 国产精品久线在线观看| 日韩AV手机在线观看蜜芽| 久久国产黑丝袜视频| 视频二区欧美| 久久大香伊蕉在人线观看热2| 精品国产中文一级毛片在线看| 亚洲欧美色中文字幕| 伊人久久久大香线蕉综合直播| 国产欧美日韩另类| 亚洲AV无码不卡无码| 国产精品9| 中文字幕丝袜一区二区| 亚洲中文久久精品无玛| 成人a免费α片在线视频网站| 欧美色99| 国产欧美另类| 夜色爽爽影院18禁妓女影院| 国产黄网永久免费| 国产精品女熟高潮视频| 香蕉99国内自产自拍视频| 国产精女同一区二区三区久| 欧美一级大片在线观看| 亚洲二区视频| 毛片大全免费观看| 在线色综合| 国产午夜一级毛片| 日韩无码一二三区| 依依成人精品无v国产| 国产噜噜在线视频观看| 亚洲人在线| 黄色网址手机国内免费在线观看| 久久天天躁狠狠躁夜夜躁| 国产精品hd在线播放| 亚洲精品视频网| 996免费视频国产在线播放| 国产一级妓女av网站| 成人中文字幕在线| 高清视频一区|