java內存資料庫
讀取的時候內存不足了,你可以增大myeclipse的內存,在myeclise.ini裡面,調大各個屬性,然後你讀取的時候存對象里後,通過byte位元組來操作,用緩沖流,寫入到磁碟中。
2. 什麼是基於Java的內存資料庫
一句話:Heap 內存中沒有足夠的可用內存了。這句話要好好理解,不是說Heap 沒有內存
了,是說新申請內存的對象大於Heap 空閑內存,比如現在Heap 還空閑1M,但是新申請的內存需
要1.1M,於是就會報OutOfMemory 了,可能以後的對象申請的內存都只要0.9M,於是就只出現
一次OutOfMemory,GC 也正常了,看起來像偶發事件,就是這么回事。但如果此時GC 沒有回
收就會產生掛起情況,系統不響應了。
3. java如何將從資料庫取出的數據預先存入到內存
你要實現的這個可能跟SpringMvc的關系不是很大。
你要達到的目的其實就是在jvm啟動的時候把資料庫數據載入一份到內存,一個靜態變數和一個靜態初始化塊就可以搞定你的問題,這兩者都是在類載入的時候初始化一次,像前面回答的一樣,你可以用一個HashMap搞定。稍微具體來說,一個靜態變數
public static final Map<key,value> cache=new HashMap<key,value>()
static {
cache=請求資料庫操作
}
key你自己加,String還是int都行,value是你資料庫的結構,可以寫個實體。獲取的時候直接cache.get(key)就可以了。
4. JAVA的常用的類庫有哪些
一、日誌相關類庫
日誌庫是很常見的,因為你在每一個項目中都需要他們。列印日誌是伺服器端應用中最重要的事情,因為日誌是你了解你的程序發生了什麼的唯一途徑。盡管JDK附帶自己的日誌庫,但是還是有很多更好的選擇可用,例如 Log4j 、 SLF4j 和 LogBack。
Java開發人員應該熟悉日誌記錄的利弊, 並且了解為什麼SLF4J要比Log4J要好。
二、JSON解析庫
在當今世界的web服務和物聯網中(IoT),JSON已經取代了XML,成為從客戶端到伺服器傳送信息的首選協議。有一個好消息和一個壞消息。壞消息 是JDK沒有提供JSON庫。好消息是有許多優秀的第三方庫可以用來解析和創建JSON消息,如 Jackson 和 Gson
一個Java web開發人員應該熟悉Jackson 和 Gson這兩種中的至少一種庫。
三、單元測試庫
單元測試技術的使用,是區分一個一般的開發者和好的開發者的重要指標。程序員經常有各種借口不寫單元測試,但最常見的借口就是缺乏經驗和知識。常見的單測框架有 JUnit , Mockito 和PowerMock 。
《2020最新Java基礎精講視頻教程和學習路線!》
四、通用類庫
有幾個很好的第三方通用庫可供Java開發人員使用,例如 Apache Commons 和 Google Guava 。我會經常在我的代碼中使用這些通用類庫,因為這些類庫都是經過無數開發者實踐過的,無論是實用性還是在性能等方面都是最佳的。
五、Http 庫
我不是很喜歡JDK的一個重要原因就包括他們缺乏對HTTP的支持。雖然可以使用java.net包類,但是這和直接使用像 Apache HttpClient 和 HttpCore 等開源類庫比起來麻煩太多了。
盡管JDK 9將開始HTTP 2.0,也對HTTP的支持做了優化,但是我還是強烈建議所有的Java開發人員熟悉流行的HTTP處理類庫,例如HttpClient和HttpCore HTTP等庫。
六、XML解析庫
市面上有很多XML解析的類庫,如 Xerces , JAXB , JAXP , Dom4j , Xstream 等。 Xerces2是下一代高性能,完全兼容的XML解析工具。Xerces2定義了 Xerces Native Interface (XNI)規范,並提供了一個完整、兼容標準的 XNI 規范實現。該解析器是完全重新設計和實現的,更簡單以及模塊化。
七、Excel讀寫庫
許多應用程序需要提供把數據導出到Excel的功能,如果你要做相同的Java應用程序,那麼你需要 Apache POI API 。
這是一個非常豐富的類庫,你可以從Java程序讀寫XLS文件。
八、位元組碼庫
如果你正在編寫一個框架或者類庫。有一些受歡迎的位元組碼庫如 javassist 和 Cglib Nodep 可以供你選擇,他們可以讓你閱讀和修改應用程序生成的位元組碼。
Javassist使得JAVA位元組碼操作非常簡單。它是一個為編輯Java位元組碼而生的類庫。 ASM 是另一個有用的位元組碼編輯庫。
九、資料庫連接池庫
如果你的Java應用程序與資料庫交互不是使用資料庫連接池庫的話,那麼你就大錯特錯了。因為在運行時創建資料庫連接非常耗時並且會拖慢你的程序。所以牆裂建議使用,有些好用的連接池可供選擇,如 Commons Pool 和 DBCP 。
在web應用程序中,web伺服器通常提供了這些功能。但是在java項目中需要把資料庫連接池的類庫導入到應用中。
十、消息傳遞庫
像日誌和資料庫連接池一樣,消息傳遞也是很多實際的Java項目中必備的。Java提供了JMS Java消息服務,但這不是JDK的一部分,你需要單獨的引入jms.jar。類似地,如果您准備使用第三方消息傳遞協議, Tibco RV 是個不錯的選擇。
十一、PDF處理庫
除了Excel和Word,PDF也是一種常用的文件格式。如果你的應用程序要支持PDF格式的文件處理,你可以使用 iText 和 Apache FOP 類庫。兩者都提供了非常有用的PDF處理功能。
十二、日期和時間庫
在Java之前,JDK的日期和時間庫一直被人們所詬病,比如其非線程安全的、不可變的、容易出錯等。很多開發人員會選擇更好用的 JodaTime 類庫。
但是在Java8推出之後,我們就可以徹底放棄JodaTime了,因為Java 8提供了其所有功能。但是,如果你的代碼運行在一個低版本的JDK中,那麼JodaTime還是值得使用的。
十三、集合類庫
雖然JDK有豐富的集合類,但還是有很多第三方類庫可以提供更多更好的功能。如 Apache Commons Collections 、 Goldman Sachs collections 、 Google Collections 和 Trove 。Trove尤其有用,因為它提供所有標准Collections 類的更快的版本以及能夠直接在原語(primitive)(例如包含int 鍵或值的Map 等)上操作的Collections 類的功能。
FastUtil是另一個類似的API,它繼承了Java Collection Framework,提供了數種特定類型的容器,包括映射map、集合set、列表list、優先順序隊列(prority queue),實現了java.util包的標准介面(還提供了標准類所沒有的雙向迭代器),還提供了很大的(64位)的array、set、list,以及快速、實用的二進制或文本文件的I/O操作類。
十四、郵件API
javax.mail 和 Apache Commons Email 提供了發送郵件的api。它們建立在JavaMail API的基礎上,提供簡化的用法。
十五、HTML解析庫
和XML與JSON類似,HTML是另外一種我們可能要打交道的傳輸格式。值得慶幸的是,我們有jsoup可以大大簡化Java應用程序使用HTML。你不僅可以使用 JSoup 解析HTML還可以創建HTML文檔。
十六、加密庫
Apache Commons家族中的 Commons Codec 就提供了一些公共的編解碼實現,比如Base64, Hex, MD5,Phonetic and URLs等等。
十七、嵌入式sql資料庫庫
我真的是非常喜歡像 H2 這種內存資料庫,他可以嵌入到你的Java應用中。在你跑單測的時候如果你需要一個資料庫,用來驗證你的SQL的話,他是個很好的選擇。順便說一句,H2不是唯一嵌入式DB,你還有 Apache Derby 和 HSQL 可供選擇。
十八、JDBC故障診斷庫
有不錯的JDBC擴展庫的存在使得調試變得很容易,例如P6spy,這是一個針對資料庫訪問操作的動態監測框架,它使得資料庫數據可無縫截取和操縱,而不必對現有應用程序的代碼作任何修改。 P6Spy 分發包包括P6Log,它是一個可記錄任何 Java 應用程序的所有JDBC事務的應用程序。其配置完成使用時,可以進行數據訪問性能的監測。
十九、序列化庫
Google Protocol Buffer是一種輕便高效的結構化數據存儲格式,可以用於結構化數據串列化,或者說序列化。它很適合做數據存儲或 RPC 數據交換格式。可用於通訊協議、數據存儲等領域的語言無關、平台無關、可擴展的序列化結構數據格式。目前提供了 C++、Java、Python 三種語言的 API。
二十、網路庫
一些有用的網路庫主要有 Netty 的和 Apache MINA 。如果您正在編寫一個應用程序,你需要做的底層網路任務,可以考慮使用這些庫。
這都是每位Java開發人員應該熟悉的,並且十分有用的庫。Java生態系統非常龐大的,你會發現有很多不同的類庫可以做不同的事情。每個你想到的東西,都可能有一個庫可以做到。
要相信,你遇到的問題,肯定不止你一個遇到過。
要相信,也許有很多人比你更勤奮。
要相信,你用或不用,輪子就在那裡。
要相信,使用這些類庫,你和你的代碼都會變得更好。
原文鏈接:https://blog.csdn.net/u011001084/article/details/79216958
5. 小型java資料庫程序使用什麼資料庫較好
小型資料庫當然要使用sqlite
SQLite,是一款輕型的關系型資料庫,它佔用資源非常的低
或者使用Redis
這是一個開源的使用ANSI C語言編寫、支持網路、可基於內存亦可持久化的日誌型、Key-Value資料庫,
6. java相關 怎麼把資料庫的數據預先存入內存
記得之前的遠標老師教過我這一塊,問了一下。是這樣回答的
你創建一個servlet的時候,添加一個init()方法,init方法中執行查詢資料庫的方法,把數據導入內存。
默認情況下servlet被載入是在第一次請求訪問到來得時候,不過可以使用xml文件中配置
<load-on-startup>-1</load-on-startup>
是其在啟動tomcat服務的時候就載入servlet就可以了。
7. java是資料庫管理系統嗎
java並不是資料庫管理系統,資料庫管理系統時基於java實現的。
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
Java設計成支持在網路上應用,它是分布式語言。Java既支持各種層次的網路連接,又以Socket類支持可靠的流(stream)網路連接,所以用戶可以產生分布式的客戶機和伺服器。網路變成軟體應用的分布運載工具。Java程序只要編寫一次,就可到處運行。
Java的發展前景:
計算機的誕生及廣泛應用推動了IT領域的發展,但21世紀的計算機早已不是訪問INTERNET的唯一的途徑。各類更具信息化的電子產品逐漸進入IT領域,推動了PC時代的大發展。
由於各種消費信息的急劇增加,傳統的客戶機的各方面條件均不如PC,PC的發展對伺服器的應用管理體統也提出了更高標准。
Java語言完全滿足了PC的條件,在減少內存,直接在各類電子產品中運行,在網路中可被任何設備所識別,充分利用網路資源等方面有所突破創新,為PC時代的發展創造了有利條件。
8. 對於普通的資料庫,有內存資料庫,比如Java DB(Derby)。是資料庫採用了內存資料庫就算用了內存資料庫
1 java DB 不是內存資料庫,時能夠管理TB級別數據的一個標准資料庫。
使用了內存資料庫,從語文角度也應理解,那就是使用了內存資料庫。。這還能怎麼解釋。
2 文件緩存和內存資料庫是完全不同的概念。你把文件讀取到內存中就是在內存了。你怎麼都是問這樣的問題。Scanner和InputStream和文件在哪沒關系,他只是讀取,從哪讀,是你設值的,你把文件先讀到內存里,他就從內存裡面讀,你把文件從硬碟讀,他就從硬碟讀。
9. Java資料庫,哪個更好用
你好,對於java來說,MySQL是最好用的資料庫。因為MySQL簡單,高效,而且是免費的。有很多大型的java應用都是使用的MySQL資料庫。
10. java自帶的資料庫怎麼用,能不能給一段運行的通的代碼.(包括import)
你是指javaDB Derby嗎?Derby資料庫是一個純用Java實現的內存資料庫,屬於Apache的一個開源項目。由於是用Java實現的,所以可以在任何平台上運行;另外一個特點是體積小,免安裝,只需要幾個小jar包就可以運行了。
Derby資料庫有兩種運行模式:
1) 內嵌模式。Derby資料庫與應用程序共享同一個JVM,通常由應用程序負責啟動和停止,對除啟動它的應用程序外的其它應用程序不可見,即其它應用程序不可訪問它;
2) 網路模式。Derby資料庫獨佔一個JVM,做為伺服器上的一個獨立進程運行。在這種模式下,允許有多個應用程序來訪問同一個Derby資料庫。
在Apache上,Derby有4種發布包,這里以bin發布包為例。bin發布包中含有包含了執行derby資料庫工具、設置derby資料庫環境的腳本文件、Demo、jar文件等。
希望幫到你……
1、 安裝Derby資料庫
只需要從Derby官方網站下載Derby的zip或者tar包,解壓就可以了。這里以db-derby-10.4.1.3-bin版本為例,解壓後得到以下目錄:
1) bin目錄,包含了一些工具腳本和設備環境的腳本;
2) demo目錄,包含了一些實常式序;
3) docs目錄,包含了Derby的文檔;
4) javadoc目錄,包含了Derby的API文檔;
5) lib目錄,包含了Derby資料庫的jar文件;
6) test目錄,Derby的一些測試jar包;
2、 使用Derby腳本
Derby提供了幾個腳本來操作Derby資料庫,在使用這些腳本前,你必須先設置好Derby的運行環境。
下面的例子都是在命令行下設置環境變數,這些設置都是臨時的,如果你新開一個命令行窗口,則需要重新設置一遍,如果想要使環境變數永久生效,可以在我的電腦中進行設置。
首先設置好DERBY_HOME這個環境變數,為DERBY_HOME指定你的derby目錄,假如你的derby解壓到了E:\ db-derby-10.4.1.3-bin目錄下,則可以在命令行中如下設置:
set DERBY_HOME=E:\ db-derby-10.4.1.3-bin
將DERBY_HOME\bin目錄添加到PATH環境變數中:
set path=%DERBY_HOME%\bin;%PATH%
這樣可以簡化你稍後在命令行中的輸入,否則你每次都必須使用腳本的全路徑或者你必須到DERBY_HOME\bin目錄中才能執行腳本。
最後需要Derby的jar包添加到classpath環境變數中,在DERBY_HOME%\bin目錄中提供了幾個腳本用於設置classpath,以簡化你手工在classpath中添加jar包的麻煩:
1) setEmbeddedCP。當使用內嵌模式來運行Derby時,可以使用該腳本來設置。該腳本將derby.jar和derbytools.jar添加到環境變數中;
2) setNetworkServerCP。當使用網路模式來運行Derby時,用該腳本來設置Derby服務端的classpath變數。該腳本將derbynet.jar添加到環境變數中;
3) setNetworkClientCP。當使用網路模式來運行Derby時,用該腳本來設置Derby客戶端的classpath變數。該腳本將derbyclient.jar和derbytools.jar添加到環境變數中。
一般只有當你通過derbyrun.jar來運行Derby工具時才會使用這些腳本。
Derby提供了三個工具腳本:1)sysinfo;2)ij;3)dblook。運行這三個腳本時,如果你沒有設置classpath環境變數,這些腳本會自動進行設置。
1) sysinfo
使用sysinfo可以顯示你的Java環境信息和Derby的版本信息。使用方法就是在命令行下直接輸入:
sysinfo.bat
2) dblook
使用dblook可以將全部或者部分資料庫的DDL定義導出到控制台或者文件中。使用方法:
dblook.bat –d <sourceDBUrl> [Options]
3) ij
使用ij工具來進行資料庫交互,執行SQL腳本,如查詢、增刪改、創建表等等。在命令行下輸入:
ij.bat
即可啟動ij工具,然後就可以開始執行SQL腳本了。當要退出ij工具時,在命令行下輸入
exit;
即可。
3、 使用ij腳本
1) 運行內嵌模式的Derby資料庫
在命令行中輸入ij.bat後啟動ij工具。然後通過如下命令創建資料庫,並與資料庫創建連接:
connect 『jdbc:derby:firstdb;create=true』;
通過connect命令可以與指定資料庫創建連接,通過一個JDBC URL來指定與哪個資料庫創建連接。ij命令是不區分大小寫的。
參數中jdbc:derby是Derby資料庫的驅動協議;firstdb是資料庫命,由於沒有指定路徑,資料庫將會被創建在當前你命令行下所在的目錄下;create=true表示如果資料庫不存在,則創建該資料庫;「;」是ij命令的終止符。
當資料庫創建成功時,Derby會在當前你命令行下所在的目錄下創建一個與資料庫命一致(這里是firstdb)的目錄,其中存放了資料庫的文件。
與資料庫連接上後,就可以開始執行SQL腳本了,如創建一個表格:
create table firsttable(id int primary key, name varchar(20));
然後插入記錄:
insert into firsttable values(1, 『Hotpepper』);
也可以執行查詢:
select * from firsttable;
也可以通過run命令來執行sql文件:
run 'E:\derby\demo\programs\toursdb\ToursDB_schema.sql';
最後通過exit;來退出ij工具。
你可以在當前你命令行下所在的目錄中找到一個derby.log的日誌文件,derby在其中記錄的資料庫啟動、關閉的信息。
2) 運行網路模式的Derby資料庫
這種模式下,需要使用兩個控制台窗口,一個用於啟動Derby資料庫服務端,另一個做為訪問Derby資料庫的客戶端。
可以通過DERBY_HOME\bin目錄下的startNetworkServer.bat來啟動Derby資料庫服務端,只需要在命令行中輸入:
startNetworkServer.bat
資料庫就啟動了,啟動成功會在控制台輸出如下信息:
已使用基本伺服器安全策略安裝了安全管理程序。
Apache Derby Network Server - 10.4.1.3 - (648739) 已啟動並且已准備好 2008-09-06
00:38:12.540 GMT 時在埠 1527 上接受連接
在另一個控制台使用ij命令訪問Derby資料庫服務端,在輸入ij.bat啟動ij工具後,通過如下命令建立與服務端的連接,並創建一個資料庫:
connect 'jdbc:derby://localhost:1527/seconddb;create=true';
參數中的資料庫命部分和內嵌模式不同,這里使用了「//localhost:1527/」,訪問網路模式的URL需要指定伺服器的IP地址和埠,其它的就和內嵌模式一樣了。
與服務端連接上後,就可以開始執行SQL腳本了,如創建一個表格:
create table firsttable(id int primary key, name varchar(20));
然後插入記錄:
insert into firsttable values(1, 『Hotpepper』);
也可以執行查詢:
select * from firsttable;
也可以通過run命令來執行sql文件:
run 'E:\derby\demo\programs\toursdb\ToursDB_schema.sql';
最後通過exit;來退出ij工具
4、 在Java應用程序中訪問Derby資料庫
使用Java代碼訪問Derby資料庫與訪問其它資料庫的區別如下:
1) JDBC驅動的不同;
2) 資料庫連接URL的不同;
3) 在訪問內嵌模式資料庫時,需要顯示關閉資料庫。
下面分別實例訪問內嵌模式和網路模式Derby資料庫的代碼
1) 訪問內嵌模式Derby資料庫
String driver = 「org.apache.derby.jdbc.EmbeddedDriver」;
String url = 「jdbc:derby:firstdb;create=true」;
Connection conn;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url);
}catch(Exception e) {
……
}finally {
……
DriverManager.getConnection("jdbc:derby:;shutdown=true");
}
建立好連接後,其它的數據操作,如查詢、更新數據都和其它資料庫一樣,這里不詳述。有一點需要注意,通過Java應用程序訪問內嵌模式Derby資料庫時,應用程序有責任需要在程序結束時關閉Derby資料庫,如上面代碼finally中的
DriverManager.getConnection("jdbc:derby:;shutdown=true");
shutdown參數用於關閉Derby資料庫,如果url中指定了資料庫命,則只會關閉指定的資料庫,而不會關閉整個Derby資料庫。資料庫關閉成功時,Derby會拋出一個錯誤碼為XJ015和一個08006的異常表示關閉成功,應用程序可以不處理這兩個異常。
2) 訪問網路模式Derby資料庫
網路模式和內嵌模式的不同出在於:
A. 資料庫連接URL的不同;
B. 應用程序退出時無效關閉Derby資料庫;
C. 資料庫驅動的不同;
String driver = 「org.apache.derby.jdbc.ClientDriver」;
String url = 「jdbc:derby: //localhost:1527/firstdb;create=true」;
Connection conn;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url);
}catch(Exception e) {
……
}
由於網路模式下,Derby資料庫做為一個獨立運行的資料庫,可以被多個應用程序所訪問,所以應用程序在運行結束時不應該關閉Derby資料庫。