一、連接數(shù)據(jù)庫
成都創(chuàng)新互聯(lián)公司專注于西和網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供西和營銷型網(wǎng)站建設(shè),西和網(wǎng)站制作、西和網(wǎng)頁設(shè)計、西和網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造西和網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供西和網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
%@page contentType="text/html;charset=GBK"%
%@page import="java.sql.*"%
%!
public static final String DBDRIVER="oracle.jdbc.driver.OracleDriver";
public static final String DBURL="jdbc:oracle:thin:@localhost:1521:MLDN";
public static final String DBUSER="用戶名";
public static final String DBPASS="密碼";
%
%
Connection conn=null; //數(shù)據(jù)庫連接
PreparedStatement pre=null; //數(shù)據(jù)庫操作
ResultSet rs=null; //數(shù)據(jù)庫的查詢結(jié)果集
%
%
Class.forName(DBDRIVER); //加載驅(qū)動程序
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql="select empno,ename,job,hiredate,sal,comm from emp";
pre=conn.prepareStatement(sql);
rs=pre.executeQuery();
%
center
h1官員管理/h1
table border="1" width="80%"
tr
td雇員編號/td
td雇員姓名/td
td工作/td
td雇傭日期/td
td工資/td
td獎金/td
/tr
% while(rs.next()){
int empno=rs.getInt(1);
String ename=rs.getString(2);
String job=rs.getString(3);
java.util.Date hiredate=rs.getDate(4);
float sal=rs.getFloat(5);
float comm=rs.getFloat(6);
%
tr
td%=empno%/td
td%=ename%/td
td%=job%/td
td%=hiredate%/td
td%=sal%/td
td%=comm%/td
/tr
%
}
%
%
conn.close();
pre.close();
rs.close();
%
/table
/center
類與類的關(guān)系
1、依賴關(guān)系
依賴關(guān)系表示一個類依賴于另一個類的定義。通俗來講即是類A中使用了另外的一個類B,且類B并非類A中作為屬性存在,即表示類A依賴于類B。對象之間最弱的一種關(guān)聯(lián)方式,是臨時性的關(guān)聯(lián)。代碼中一般指由局部變量、函數(shù)參數(shù)、返回值建立的對于其他對象的調(diào)用關(guān)系。
class A{
public B method(C c){
B b = new B();
return b;
}
}
登錄后復(fù)制
2、關(guān)聯(lián)關(guān)系
關(guān)聯(lián)關(guān)系是類與類之間的聯(lián)接,它使一個類知道另一個類的屬性和方法。通俗來講即類A中有一個屬性b,該屬性的數(shù)據(jù)類型為類B,類A可以通過屬性b調(diào)用類B的屬性與方法。也即一般來說的has-a的關(guān)系。
class A{
public B b;
}
登錄后復(fù)制
3、聚合關(guān)系
聚合關(guān)系是特殊的關(guān)聯(lián)關(guān)系,其與關(guān)聯(lián)關(guān)系在代碼上并無實際上的區(qū)別,二者的區(qū)別主要體現(xiàn)在語義上,關(guān)聯(lián)關(guān)系即代表可有可無,而聚合關(guān)系則代表必須擁有(注:被聚合或關(guān)聯(lián)的事務(wù)也代表一個單獨(dú)的事務(wù),其也有獨(dú)立的意義。)舉例說明就像筆記本電腦,其與外接鼠標(biāo)就是關(guān)聯(lián)關(guān)系,外接鼠標(biāo)只是附件,而想cpu,內(nèi)存條等是組成一個筆記本電腦所必須的,而他們的關(guān)系就是聚合關(guān)系。
class computer{
public Cpu cpu1;
}
登錄后復(fù)制
4、組合關(guān)系
組合關(guān)系也是特殊的關(guān)聯(lián)關(guān)系,其類似于聚合關(guān)系,但比聚合關(guān)系更加的強(qiáng),即對象 A 包含對象 B,對象 B 離開對象 A 沒有實際意義。舉例來講就是作為一個人,你可以沒有錢,但你不能沒有腦子(物理),你與錢就是關(guān)聯(lián)關(guān)系,錢乃身外之物,而你與大腦則是組合關(guān)系,大腦每人就一個,沒了它,你便無法存在,而單獨(dú)一個腦子離開了人也就失去了它應(yīng)有的作用。
class person{
public Head head;
}
登錄后復(fù)制
5、繼承關(guān)系
類與類的繼承關(guān)系,類與接口的實現(xiàn)關(guān)系。繼承指的是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,并可以增加它自己的新功能的能力。
class A extends B{
public A(){
super();
}
}
登錄后復(fù)制
類與類之間的繼承只能是單繼承,但可以多層繼承。
單繼承即表示一個類只可以繼承一個父類。
多層繼承即是類A繼承類B,而類B又繼承了類C,所以類A間接繼承了類C
類與接口之間的關(guān)系
注:Java8新增了默認(rèn)方法和靜態(tài)方法;
public interface A{
//抽象方法
public void a1();
//默認(rèn)方法
default void a2() {
System.out.println("a2");
}
//靜態(tài)方法
static void a4() {
System.out.println("a4");
}
}
登錄后復(fù)制
?
其中,靜態(tài)方法只供接口直接使用
類可以繼承一個類且實現(xiàn)多個接口
注意:
1.如果多個接口中有同名的抽象方法,那么實現(xiàn)類只需要實現(xiàn)一次即可
2.如果多個接口中有同名的默認(rèn)方法,那么實現(xiàn)類必須重寫一次,并且要去掉default關(guān)鍵字
接口可以繼承多個接口
注意:
1.如果多個父接口中有同名的抽象方法,那么子接口只需要實現(xiàn)一次即可
2.如果多個父接口中有同名的默認(rèn)方法,那么子接口必須重寫默認(rèn)方法,必須要加default關(guān)鍵字
java連接數(shù)據(jù)庫主要用的是jdbc。
在你指定jdbc的時候需要指定連接字符串。
對于數(shù)據(jù)庫的不同連接字符串的格式不同。
但是目前發(fā)現(xiàn)jdbc連接數(shù)據(jù)庫都是指定庫名稱的。比如mysql會指定。oracle會指定。sqlserver也會指定??赡苁菫榱税踩陂g數(shù)據(jù)庫開發(fā)商沒有提供此類不用指定庫名就連接上的方法,主要是為了安全數(shù)據(jù)庫的安全。個人想法。
目前java連接數(shù)據(jù)庫動態(tài)建表是沒有問題的。只要是標(biāo)準(zhǔn)的sql92語法的都能實現(xiàn)與執(zhí)行。 但是好像sql92沒有定義如何建庫的語句吧。
還有你需要先確定表和庫的概念。。 表的合集是庫。。。
今天用java連接sqlserver 2005的多實例時,發(fā)現(xiàn)總是報錯"error while performing database login with the xxx driver,";在網(wǎng)上找到一篇文章,如下:java語言中,通過jdbc訪問sqlserver2005數(shù)據(jù)庫默認(rèn)實例可以按正常的寫法來建立url連接,代碼如下:Connection cn = DriverManager.getConnection("jdbc:sqlserver://172.16.5.2:1433; DatabaseName=EAS60_Demo", "sa","sa"); 其中172.16.5.2為sqlserver2005數(shù)據(jù)庫ip,EAS60_Demo為數(shù)據(jù)庫。那么對于多實例(實例名:SQL2005)的數(shù)據(jù)庫又是如何訪問?經(jīng)過查資料和摸索發(fā)現(xiàn)url寫法如下:con = DriverManager.getConnection("jdbc:sqlserver://172.16.5.2;instanceName=SQL2005; DatabaseName=EAS60_Demo", "sa","sa");也可以這樣寫:Connection cn = DriverManager.getConnection("jdbc:sqlserver://172.16.5.2//SQL2005; DatabaseName=EAS60_Demo", "sa","sa"); 用//實例名的方式,還是提示報錯,上一種用instanceName=實例名,可以正確連接.要改成以下方式:Connection cn = DriverManager.getConnection("jdbc:sqlserver://172.16.5.2\SQL2005; DatabaseName=EAS60_Demo", "sa","sa");注意,多實例的url中沒有端口號1433。