derby資料庫javaswing(derby資料庫可視化客戶端)

本文目錄一覽:

java jms為什麼引入消息中間件

mom4j

mom4j是一個完全實現JMS1.1規範的消息中間件並且向下兼容JMS1.0與1.02.它提供了自己的消息處理存儲使它獨立於關係數據與語言,所以它的客戶端可以用任何語言開發.

OpenJMS

OpenJMS是一個開源的Java Message Service API 1.0.2 規範的實現,它包含有以下特性:

*. 它既支持點到點(point-to-point)(PTP)模型和發布/訂閱(Pub/Sub)模型。

*. 支持同步與非同步消息發送

*. JDBC持久性管理使用資料庫表來存儲消息

*. 可視化管理界面。

*. Applet支持。

*. 能夠與Jakarta Tomcat這樣的Servlet容器結合。

*. 支持RMI, TCP, HTTP 與SSL協議。

*. 客戶端驗證

*. 提供可靠消息傳輸、事務和消息過濾

UberMQ

UberMQ完全實現了Java Message Service 規範。UberMQ是因為現有的許多JMS提供商已經違背了分散式計算的核心原則:快速與簡單而開發的。

Hermes JMS

利用它提供的Swing UI可以很好的實現監控JMS providers。

ActiveMQ

ActiveMQ是一個開放源碼基於Apache 2.0 licenced 發布並實現了JMS 1.1。它能夠與Geronimo,輕量級容器和任Java應用程序無縫的給合。

Somnifugi

Somnifugi使得工作在同一個java虛擬機中的線程能實現消息互發。

MantaRay

MantaRay基於peer-2-peer 技術。它具有以下特性:

1.它既支持點對點(point-to-point)的域,又支持發布/訂閱(publish/subscribe)類型的域。

2.並且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。

3.消息過濾體制。

4.能與WebLogic and WebSphere 給合。

5.支持TCP, UDP 與 HTTP傳輸協。

Presumo

Presumo也是一個實現Java Message Service API的JMS消息中間件。

JORAM

JORAM一個類似於openJMS分布在ObjectWeb之下的JMS消息中間件。

JMS4Spread

JMS4Spread是一個消息系統.它部分地實現了Java消息服務(JMS) API.

——————————————————————————————-

開源JMS簡單比較

我考慮在公司的項目中採用JMS來降低伺服器之間的耦合性,但為了降低成本,商業軟體是不考慮的,於是只能在開源的並且對商業友好的JMS伺服器中選擇一個了。選擇條件主要基於:

支持JMS 1.1規範

持久化,能滿足商業應用所需的穩定性

滿足項目的性能需求

最好本身提供JNDI服務

最好支持JMX

最好本身提供一個友好的管理工具

最好提供一份完整的文檔

準備進行選擇的JMS伺服器有:OpenJMS、UberMQ、ActiveMQ、MantaRay、JORAM

OpenJMS:老牌的JMS伺服器了,也是我最早知道的開源JMS伺服器,不過只支持JMS 1.02,已經很長時間沒有更新了,因此不予考慮。

UberMQ:採用NIO的JMS伺服器,以前我學習NIO的時候看過它的代碼,寫的蠻不錯的,也支持JMS 1.1。由於採用了NIO,所以具有很高的彈性,在滿足項目的性能需求上沒有什麼問題;本身也提供JNDI服務,但是遺憾的是我bind其他類型的數據時會出錯;提供admin和viewer兩個管理工具,但是在管理工具里不能創建ConnectionFactory和Destination並綁定到JNDI;文檔不太完整;最頭痛的對於持久化支持不好,如果關閉JMS伺服器再開啟,所有保存在JMS中的信息就全部丟失了,這點沒有辦法滿足商業應用所需的穩定性。

ActiveMQ:最近比較活躍的一個JMS伺服器,主頁上的介紹說在協議配置上可以選擇支持NIO,但是我仔細看它所支持的協議,卻並沒有提到如何配置,並且在實際的測試中也並沒有發現其有採用NIO的跡象,多連接一個Client端,伺服器端就增多了一個線程。滿足JMS 1.1,有多種方法進行持久化;本身不提供JNDI,也沒有對JMX的支持,本身不帶管理工具,採用Hermes進行管理(這個我會在以後提到),文檔也相對較少。

MantaRay:也是比較活躍的一個JMS伺服器,採用的是P2P模型,但是我不喜歡這種模型,對於JMS服務來說,很大的一個特點就是客戶端可以不用永遠在線,比如在更新某一個客戶端時需要暫停服務,等服務再度開啟時,這段時間內所接收到的信息並不會丟失,保存在伺服器上,所以我並不能看到P2P模型應用在JMS伺服器上的優勢,況且採用JMS服務就是為了解除耦合,速度並不是唯一需要考量的事情。出於我不喜歡其所採用模型,並且在運行其所帶的示例時都出現了示例時都出現了問題,兩個客戶端互發互收,但是彼此之間都收不到消息,於是不予考慮。

JORAM:支持JMS 1.1,可以持久化到文件,本身提供JNDI服務和提供對JMX的支持,自帶的管理工具可以添加ConnectionFactory和Destination並綁定到JNDI,這點對實現動態管理來說非常有用;文檔非常完備,100多頁的PDF,包含了各種配置和調整信息。其穩定性考慮的尤其好,不僅考慮到JMS伺服器的集群,甚至連JNDI的集群也考慮進去(儘管暫時對我而言還用不上),這點對於商業應用而言應該會有加分。

ActiveMQ是Apache License,JORAM是LGPL,這兩者對於商業應用都是友好的;UberMQ和MantaRay採用是Dual License,UberMQ的Dual License是只要你不分發,就可以允許使用;而MantaRay是商業使用需要應用一個商業的License。

比較上面的這些JMS伺服器,最終我是選擇了JORAM,其滿足了我的絕大部分要求,唯一比較遺憾的是其採用傳統的IO模型,每連接一個Client端會在伺服器端增加兩個線程,這點稍微影響了伺服器的彈性。不過考慮到我們的項目應用,這點暫時可以不用考慮,實在壓力過大了,最多到時候採用JMS集群唄:)

開源JMS再比較

四月份時我曾經比較了那時活躍度比較高的一些開源JMS——《開源JMS簡單比較》,時隔四個月,重新回顧這些項目,發現與四個月以前的比較有一些出入,在這裡再進行一些比較:)

比較的項目沒有變化,OpenJMS、UberMQ、ActiveMQ、MantaRay、JORAM,這段時間內沒有出現什麼JMS新秀,JBoss計劃在今年第四季度發布JBoss Messaging,但只要還是捆綁發行,我對其就沒什麼興趣。

在上次的比較中,OpenJMS已經有比較長的一段時間沒有更新了,但最近的四個月似乎又活躍了起來,其預備發行的0.7.7版計劃支持JMS 1.1(這個來的太晚了些),其主頁上的Changelog表明了接下來的這個版本有著較大的變化。這對那些以前將OpenJMS應用在項目中的人來說是一個不錯的消息,但對正在選擇JMS的人而言,OpenJMS的這些改進來的還是稍稍晚了些。

UberMQ這段時間沒有更新,我對它的評價與以前一樣,沒有任何變化。

MantaRay在其主頁上更新了一系列的Flash Demos,通過這些Demo,我更堅定了我的看法——MantaRay並不適合用於企業的JMS服務。

P2P這個詞雖然熱,但是不是什麼地方都需要P2P的,在我看來JMS就是用於解除各個應用之間的耦合,速度是個關鍵指標,但比起這個關鍵指標更重要的是它存在的意義。我更傾向於採用MantaRay在Flash中所反對的那種模型,通過中心伺服器進行轉發,可以存放離線消息以及解除耦合。更何況,企業應用中很少有類似MantaRay演示DEMO中出現的那種網路拓撲圖,並不是任何兩個節點之間都是互聯互通的。當然,如果MantaRay能夠做一些改進,先嘗試採用點對點模型,如果點對點失敗,這時將消息發送到中心伺服器上(但這一切必須對用戶透明),我會比較贊成,既具有傳統優勢,又能提高消息發送接收速度。

至於上篇文章中提到的運行其自帶的示例出現了問題,這次在Flash演示中終於找到了答案。看來MantaRay真應該提高其示常式序的易用性,這麼複雜的操作,要是不看Flash演示,還真難想到該這樣操作:(

ActiveMQ是讓我感到驚訝的一個項目,上次對它的評價似乎有失偏頗。 ActiveMQ支持多種網路拓撲模型,既可以採用傳統JMS的Client-Server模型,也可以採用MantaRay的P2P模型,還可以僅僅支持同一JVM內的JMS應用。持久化機制一如既往的優秀,默認採用Apache Derby資料庫持久化,也可以配置為各種主流資料庫來持久。目前也提供了一簡單的JNDI實現,對於JMS應用而言,這已經夠用了。

但是其缺點也同樣明顯,本身不提供管理工具;示例代碼非常少;雖然主頁上的文檔看上去比較全面,但是一來缺乏一種有效的組織方式(文檔凌亂,用戶很難由淺入深進行了解,提高了門檻),二來文檔整體的專業性太強(不了解ActiveMQ?看文檔去吧,可是文檔是寫給了解ActiveMQ的用戶看的……),對於普通用戶而言,門檻有點高。

而且感覺ActiveMQ有點不安於JMS的本份,開始做一些周邊應用了,看其主頁就可以看出來,多了很多比較流行的辭彙。說不上這是優點還是缺點,但就我的角度而言,我更希望其專註於做好它的JMS。

JORAM在這段期間推出了4.3.x的版本,也是我們在應用中所採用的版本,我的評價和上次相比沒有什麼大的變化。主頁上說其速度有了提高,但我們應用中JMS數據量相對較少,沒有感覺出來。稍微遺憾的是在我們試用的過程中,從4.2.3升級到4.3,老版本的持久化消息都無法在新版本上識別出來,只能全部清空。在兼容性上,看來JORAM還得多下功夫。總而言之,我們在應用中採用JORAM,感覺就是波瀾不驚,沒碰到什麼大問題,也沒有什麼驚喜。

java中可以用swing編的程序連接資料庫嗎?

SWING本來就可以連資料庫的啊

用JDBC技術連資料庫 或者用io流保存在文件中

你可以在SWING中寫個方法 方法中定義一個連接把上次運行次數讀出來 再+1存進去

然後在每次程序啟動的時候調用這個方法不就可以了

先配個數據源

再個資料庫連接類吧

先導入java.sql包

import java.sql.*;

public class DB{

Connection con;

Statement stt;

private void begin()

{

if(con!=null||stt!=null)

{

this.closs();

}

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

con = DriverManager.getConnection(“jdbc:odbc:數據源名”);

stt = con.createStatement();

}

public Resultset qu(String sql)

{

this.begin();

return stt.executeQuery(sql);

}

public boolean cun(String sql)

{

this.begin();

return stt.execute(sql);

}

public void closs()

{

stt.close();

con.close();

}

}

然後在你的swing程序中 要連資料庫的時候就

DB a = new DB

要存數據就

a.cun(“update/insert ….”)

要取就

a.qu(“select … from…”)

javaswing怎麼向資料庫中添加數據

首先你要明白一個問題javaswing給你提供了一個可視化的界面,這個界面可以使你在後端接受到界面互動產生的數據行為。

然後,寫入資料庫這個操作,你只要知道你寫一個jdbc的連接,寫sql語句。

你把這兩步分開做第一步是列印點按鈕列印你的對話框里的內容。第二部,你寫個main方法寫入資料庫最後把這兩步合併起來。

java swing JTable 顯示資料庫中一個表中的數據,表中有一百多條,可是JTable只能顯示25條

JTable大小固定了,應該把JTable放在JScrollPane裡面

JScrollPane scrollPane = new JScrollPane();

 scrollPane.setViewportView(table);

Java SWING如何從資料庫中讀取多組數據通過JTable顯示?

public void inithavesold(){//建立查詢已銷售商品表格、模型

try {

VectorString columnName = new VectorString();//欄位名

VectorVectorObject dataVector = new

VectorVectorObject(); //存儲所有數據,裡面每個小的Vector是存單行的

columnName.add(“編號”);

columnName.add(“商品名”);

columnName.add(“數量”);

columnName.add(“價格”);

columnName.add(“總盈利”);

conn = DataBase.getconnection();

stmt = conn.createStatement();

rs = stmt.executeQuery(“select * from havesold”);

while(rs.next()){

VectorObject vec = new VectorObject();//就是這個存單行的,最後放到上面的大的Vector裡面

for(int i=1;i=5;i++){

vec.add(rs.getObject(i));

}

dataVector.add(vec);

}

tmhavesold = new DefaultTableModel();//建立默認的JTable模型

tmhavesold.setDataVector(dataVector, columnName);//設定模型數據和欄位

DataBase.free(conn, stmt, rs);

} catch (SQLException e) {

e.printStackTrace();

}

jtable.setModel(tmhavesold);

}

在JAVA Swing中對資料庫內容進行了修改,怎樣在主界面中實現JFrame的刷新,repaint()和validate()都沒用

你想進行局部刷新,還是整體刷新。

①主要是個思路問題,想局部刷新的話,將修改後的值,傳回到主界面中,通過x,y定位,修改單元格的值(你主界面應該是表格)

②想整體刷新的話,就簡單了,不用傳值,修改完成後,釋放當前窗口資源,新建一個資源窗口。

PS:如還有問題,可百度Hi我!或留聯繫方式,good luck!~

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/295178.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 17:15
下一篇 2024-12-26 17:15

相關推薦

  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • Python調用crt telnet客戶端的實現

    本篇文章將詳細介紹如何使用Python調用crt telnet客戶端。我們將從以下幾個方面進行闡述: 一、安裝crt telnet客戶端 首先,我們需要下載並安裝crt telne…

    編程 2025-04-28
  • Think-ORM數據模型及資料庫核心操作

    本文主要介紹Think-ORM數據模型建立和資料庫核心操作。 一、模型定義 Think-ORM是一個開源的ORM框架,用於簡化在PHP應用中(特別是ThinkPHP)與關係資料庫之…

    編程 2025-04-27
  • 跨域通信浮標——實現客戶端之間的跨域通信

    本文將介紹跨域通信浮標的使用方法,該浮標可以實現客戶端之間的跨域通信,解決了瀏覽器同源策略的限制,讓開發者能夠更加方便地進行跨域通信。 一、浮標的原理 跨域通信浮標的原理是基於浮動…

    編程 2025-04-27
  • 如何使用Python將CSV文件導入到資料庫

    CSV(Comma Separated Values)是一種可讀性高、易於編輯與導入導出的文件格式,常用於存儲表格數據。在數據處理過程中,我們有時需要將CSV文件導入到資料庫中進行…

    編程 2025-04-27
  • Python批量導入資料庫

    本文將介紹Python中如何批量導入資料庫。首先,對於數據分析和挖掘領域,資料庫中批量導入數據是一個必不可少的過程。這種高效的導入方式可以極大地提高數據挖掘、機器學習等任務的效率。…

    編程 2025-04-27

發表回復

登錄後才能評論