❶ java資料庫連接文件在哪
一般來說,連接文件放在哪沒有固定的說法,那要看你用的是什麼框架,spring,struts,java,jsp,hibernate等的連接位置都不同,有的在配置文件里,有的在代碼里,tomcat的server.xml中也可以配置資料庫連接,如果你的再java文件中,那就從各個文件中尋找類似下面的代碼:
String driver ="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/test";
String user="root";
String password="";
try{
Class.forName(driver);
}
catch(Exception e){
System.out.println("無法載入驅動程序" +driver);
}
try{
Connection con=DriverManager.getConnection(url,user,password);
if(!con.isClosed())
System.out.println("資料庫連接成功");
con.close();
}
catch(SQLException ee){
System.out.println("資料庫連接失敗");
}
}
}
關鍵在Connection con=DriverManager.getConnection(url,user,password);
這一句,java,jsp主要用這個連接的,其餘的只是把這個封裝了。無非需要com.mysql.jdbc.Driver,user,password這三個欄位,從項目里搜索或一個一個找應該可以找到。搜索時最好用com.mysql.jdbc.Driver或其中一部分來搜索。
======================
別人給你的源程序,那說明他本來裡面應該已經有鏈接資料庫的文件了,你就不用自己寫了,資料庫鏈接可以在tomcat中也可以不在tomcat里,已經有了,就不用你自己寫了,你要做的就是找到資料庫鏈接文件,然後把裡面的地址、用戶名、密碼改成你目前資料庫的。
按照我給你的方法應該可以找到資料庫鏈接文件。
❷ java 6 中自帶的javaDB(derby)資料庫,是否不用啟動服務,直接可以和jdk進行交互呀
新安裝了 JDK 6 的程序員們也許會發現,除了傳統的 bin、jre 等目錄,JDK 6 新增了一個名為 db 的目錄。這便是 Java 6 的新成員:Java DB。這是一個純 Java 實現、開源的資料庫管理系統(DBMS),源於 Apache 軟體基金會(ASF)名下的項目 Derby。它只有 2MB 大小,對比動輒上 G 的資料庫來說可謂袖珍。但這並不妨礙 Derby 功能齊備,支持幾乎大部分的資料庫應用所需要的特性。更難能可貴的是,依託於 ASF 強大的社區力量,Derby 得到了包括 IBM 和 Sun 等大公司以及全世界優秀程序員們的支持。這也難怪 Sun 公司會選擇其 10.2.2 版本納入到 JDK 6 中,作為內嵌的資料庫。這就好像為 JDK 注入了一股全新的活力:Java 程序員不再需要耗費大量精力安裝和配置資料庫,就能進行安全、易用、標准、並且免費的資料庫編程。在這一章中,我們將初窺 Java DB 的世界,來探究如何使用它編寫出功能豐富的程序。
Hello, Java DB:內嵌模式的 Derby
既然有了內嵌(embedded)的資料庫,就讓我們從一個簡單的範例開始,試著使用它吧。這個程序做了大多數資料庫應用都可能會做的操作:在 DBMS 中創建了一個名為 helloDB 的資料庫;創建了一張數據表,取名為 hellotable;向表內插入了兩條數據;然後,查詢數據並將結果列印在控制台上;最後,刪除表和資料庫,釋放資源。
public class HelloJavaDB {
public static void main(String[] args) {
try { // load the driver
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
System.out.println("Load the embedded driver");
Connection conn = null;
Properties props = new Properties();
props.put("user", "user1"); props.put("password", "user1");
//create and connect the database named helloDB
conn=DriverManager.getConnection("jdbc:derby:helloDB;create=true", props);
System.out.println("create and connect to helloDB");
conn.setAutoCommit(false);
// create a table and insert two records
Statement s = conn.createStatement();
s.execute("create table hellotable(name varchar(40), score int)");
System.out.println("Created table hellotable");
s.execute("insert into hellotable values('Ruth Cao', 86)");
s.execute("insert into hellotable values ('Flora Shi', 92)");
// list the two records
ResultSet rs = s.executeQuery(
"SELECT name, score FROM hellotable ORDER BY score");
System.out.println("namettscore");
while(rs.next()) {
StringBuilder builder = new StringBuilder(rs.getString(1));
builder.append("t");
builder.append(rs.getInt(2));
System.out.println(builder.toString());
}
// delete the table
s.execute("drop table hellotable");
System.out.println("Dropped table hellotable");
rs.close();
s.close();
System.out.println("Closed result set and statement");
conn.commit();
conn.close();
System.out.println("Committed transaction and closed connection");
try { // perform a clean shutdown
DriverManager.getConnection("jdbc:derby:;shutdown=true");
} catch (SQLException se) {
System.out.println("Database shut down normally");
}
} catch (Throwable e) {
// handle the exception
}
System.out.println("SimpleApp finished");
}
}
隨後,我們在命令行(本例為 Windows 平台,當然,其它系統下稍作改動即可)下鍵入以下命令:
清單 2. 運行 HelloJavaDB 命令
java –cp .;%JAVA_HOME%dblibderby.jar HelloJavaDB
圖 1. HelloJavaDB 程序的執行結果
上述的程序和以往沒什麼區別。不同的是我們不需要再為 DBMS 的配置而勞神,因為 Derby 已經自動地在當前目錄下新建了一個名為 helloDB 的目錄,來物理地存儲數據和日誌。需要做的只是注意命名問題:在內嵌模式下驅動的名字應為 org.apache.derby.jdbc.EmbeddedDriver;創建一個新資料庫時需要在協議後加入 create=true。另外,關閉所有資料庫以及 Derby 的引擎可以使用以下代碼:
清單 3. 關閉所有資料庫及 Derby 引擎
DriverManager.getConnection("jdbc:derby:;shutdown=true");
如果只想關閉一個資料庫,那麼則可以調用:
清單 4. 關閉一個資料庫
DriverManager.getConnection("jdbc:derby:helloDB;shutdown=true ");
這樣,使用嵌入模式的 Derby 維護和管理資料庫的成本接近於 0。這對於希望專心寫代碼的人來說不失為一個好消息。然而有人不禁要問:既然有了內嵌模式,為什麼大多數的 DBMS 都沒有採取這樣的模式呢?不妨做一個小實驗。當我們同時在兩個命令行窗口下運行 HelloJavaDB 程序。結果一個的結果與剛才一致,而另一個卻出現了錯誤,如 圖 2 所示。
圖 2. 內嵌模式的局限
錯誤的原因其實很簡單:在使用內嵌模式時,Derby 本身並不會在一個獨立的進程中,而是和應用程序一起在同一個 Java 虛擬機(JVM)里運行。因此,Derby 如同應用所使用的其它 jar 文件一樣變成了應用的一部分。這就不難理解為什麼在 classpath 中加入 derby 的 jar 文件,我們的示常式序就能夠順利運行了。這也說明了只有一個 JVM 能夠啟動資料庫:而兩個跑在不同 JVM 實例里的應用自然就不能夠訪問同一個資料庫了。
鑒於上述的局限性,和來自不同 JVM 的多個連接想訪問一個資料庫的需求,下一節將介紹 Derby 的另一種模式:網路伺服器(Network Server)。
網路伺服器模式
如上所述,網路伺服器模式是一種更為傳統的客戶端/伺服器模式。我們需要啟動一個 Derby 的網路伺服器用於處理客戶端的請求,不論這些請求是來自同一個 JVM 實例,還是來自於網路上的另一台機器。同時,客戶端使用 DRDA(Distributed Relational Database Architecture)協議連接到伺服器端。這是一個由 The Open Group 倡導的資料庫交互標准。圖 3 說明了該模式的大體結構。
由於 Derby 的開發者們努力使得網路伺服器模式與內嵌模式之間的差異變小,使得我們只需簡單地修改 清單 1 中的程序就可以實現。如清單 5所示,我們在 HelloJavaDB 中增添了一個新的函數和一些字元串變數。不難看出,新的代碼只是將一些在上一節中特別指出的字元串進行了更改:驅動類為 org.apache.derby.jdbc.ClientDriver,而連接資料庫的協議則變成了 jdbc:derby://localhost:1527/。這是一個類似 URL 的字元串,而事實上,Derby 網路的客戶端的連接格式為:jdbc:derby://server[:port] /databaseName[;attributeKey=value]。在這個例子中,我們使用了最簡單的本地機器作為伺服器,而埠則是 Derby 默認的 1527 埠。
圖 3. Derby 網路伺服器模式架構
清單 5. 網路伺服器模式下的 HelloJavaDB
public class HelloJavaDB {
public static String driver = "org.apache.derby.jdbc.EmbeddedDriver";
public static String protocol = "jdbc:derby:";
public static void main(String[] args) {
// same as before
}
private static void parseArguments(String[] args) {
if (args.length == 0 || args.length > 1) {
return;
}
if (args[0].equalsIgnoreCase("derbyclient")) {
framework = "derbyclient";
driver = "org.apache.derby.jdbc.ClientDriver";
protocol = "jdbc:derby://localhost:1527/";
}
}
}
當然,僅僅有客戶端是不夠的,我們還需要啟動網路伺服器。Derby 中控制網路伺服器的類是 org.apache.derby.drda.NetworkServerControl,因此鍵入以下命令即可。如果想了解 NetworkServerControl 更多的選項,只要把 start 參數去掉就可以看到幫助信息了。關於網路伺服器端的實現,都被 Derby 包含在 derbynet.jar 里。
清單 6. 啟動網路伺服器
java -cp .;"C:Program FilesJavajdk1.6.0dblibderby.jar";
"C:Program FilesJavajdk1.6.0dblibderbynet.jar"
org.apache.derby.drda.NetworkServerControl start
相對應的,網路客戶端的實現被包含在 derbyclient.jar 中。所以,只需要在 classpath 中加入該 jar 文件,修改後的客戶端就可以順利地讀取數據了。再一次嘗試著使用兩個命令行窗口去連接資料庫,就能夠得到正確的結果了。如果不再需要伺服器,那麼使用 NetworkServerControl 的 shutdown 參數就能夠關閉伺服器。
更多
至此,文章介紹了 Java SE 6 中的新成員:Java DB(Derby),也介紹了如何在內嵌模式以及網路伺服器模式下使用 Java DB。當然這只是淺嘗輒止,更多高級的選項還需要在 Sun 和 Derby 的文檔中尋找。在這一章的最後,我們將簡單介紹幾個 Java DB 的小工具來加快開發速度。它們都位於 org.apache.derby.tools 包內,在開發過程中需要獲取信息或者測試可以用到。
• ij:一個用來運行 SQL 腳本的工具;
• dblook:為 Derby 資料庫作模式提取(Schema extraction),生成 DDL 的工具;
• sysinfo:顯示系統以及 Derby 信息的工具類;
❸ 在安裝完JDK6.0,選擇了安裝JAVA DB,這是JAVA自帶的資料庫嗎怎麼用呢
這是JDK自帶的資料庫軟體,使用和使用Mysql差不多
❹ java資料庫問題,跟著教材走,所以一直在用Access, 如果用自帶的 jdk自帶的資料庫,驅動
JDK自帶的資料庫,你指的是Derby吧,JDK6之後自帶的微型資料庫。默認安裝之後會放在jdk下面的db包中,你可看看下面的示例代碼:
try{//loadthedriver
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();System.out.println("Loadtheembeddeddriver");
Connectionconn=null;
Propertiesprops=newProperties();
props.put("user","user1");
props.put("password","user1");
//
conn=DriverManager.getConnection("jdbc:derby:helloDB;create=true",props);
System.out.println("createandconnecttohelloDB");
conn.setAutoCommit(false);
//
Statements=conn.createStatement();
s.execute("createtablehellotable(namevarchar(40),scoreint)");
System.out.println("Createdtablehellotable");
s.execute("insertintohellotablevalues('RuthCao',86)");
s.execute("insertintohellotablevalues('FloraShi',92)");
//listthetworecords
ResultSetrs=s.executeQuery("SELECTname,");
System.out.println("name score");
while(rs.next()){
StringBuilderbuilder=newStringBuilder(rs.getString(1));
builder.append(" ");
builder.append(rs.getInt(2));
System.out.println(builder.toString());
}
//deletethetable
s.execute("droptablehellotable");
System.out.println("Droppedtablehellotable");
rs.close();
s.close();
System.out.println("Closedresultsetandstatement");
conn.commit();
conn.close();
System.out.println("");
try{//performacleanshutdown
DriverManager.getConnection("jdbc:derby:;shutdown=true");
}catch(SQLExceptionse){
System.out.println("Databaseshutdownnormally");
}
}catch(Exceptionex){}
System.out.println("SimpleAppfinished");
❺ Java資料庫主要有哪些
常用的資料庫有MySQL,緩存資料庫 一般使用 Redis ,比較大型的項目我們一般一會使用orcal
❻ java中資料庫到底是一個什麼東西有什麼用謝謝。。
資料庫不是java中才有
資料庫,database,知名見意,就是"存數據的庫",是一種專門提供存放數據的功能的軟體
舉個例子,你剛開始學java,都是列印到控制台之類的小程序,當哪一天,要求你把列印出來的內容存到電腦上,你怎麼辦?沒錯,第一個辦法就是寫到文件裡面.
可是,當哪一天,讓你處理很多很多個列印內容,並且都要存下來的時候,你怎麼辦?
你可以都寫在文件裡面沒有問題.
現在又有要求了,讓你把你之前列印的內容給取出來,並且需要取內容中包含你的名字的.
好了,你就得寫讀取文件的處理,並且找到這些內容.
資料庫最終的處理,就是把數據寫到文件裡面,並且提供方法讓你以後讀取這些內容,也就是非常完美的幫你解決了3中的問題
那這個有什麼用呢?
再舉個例子:你打游戲,游戲進行到一般,你要存檔.你以為存檔是做了什麼?其實就是把當前的游戲運行的數據存到資料庫裡面.等你讀檔的時候再取出來.
舉得例子非常簡單.再舉一個,比如這個網路知道.你提的問題為什麼網路在1年以後還能給你顯示出來,你以為它存在哪的?