SQL2000需要三個jar包:http://dl.dbank.com/c01lhhrw11
SQL2005需要一個jar包:http://dl.dbank.com/c02tkdkmmy
加載驅動與得到連接的區別:
SQL2005的用:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;d atabaseName=stdb","sa","sa");
SQL2000的用:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;d atabaseName=stdb","sa","sa");第二步,看你的sql 2005是否開啟了遠程訪問權限,具體設置如下:
進入“Microsoft SQL Server 2005 ”——“配置工具”——“SQL Server 外圍應用配置器”
在進入“MSSQLSERVER"——“DATABASE" Engine”——“遠程連接”
選擇“本地連接和遠程連接(R)"——”同時使用tcp/ip和named pipes(B)"
最后重啟sql server 2005
方法重載
# Java的方法重載是指一個類中有多個方法具有相同的名字,但參數不同。
調用方法時通過傳遞給它們的不同個數和類型的參數來區分具體使用哪個方法, 這
就是多態性。
1. 方法名相同
2. 方法的參數類型,個數,順序至少有一項不同
3. 方法返回類型可以不同
4. 方法的修飾符可以不同
方法覆蓋(重寫)
#在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時子類并不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。
1. 方法覆蓋就是子類有一個方法和父類的某個方法的名稱、返回類型、參數一樣,那么我們就說子類的這個方法覆蓋了父類的那個方法。
2. 子類的方法的返回類型,參數,方法名稱要和父類的完全一致,否則編譯出錯。
3. 子類方法不能縮小父類方法的訪問權限(子類方法的修飾符定義得要比父類方法的修飾符的訪問范圍大)
成員變量和局部變量
1.類體屬性部分定義的變量稱為成員變量;方法體內定義的變量稱為局部變量。
2.成員變量在整個類內都有效;局部變量只在定義它的方法體內有效。
3.如果成員變量和局部變量的名字相同,則在方法體里成員變量將被隱藏。
Public class Person{
int age; //成員變量
String name; //成員變量
public Person(int age,String name)
{
this.age=age; //this.age中的age為成員變量,age為局部變量
this.name=name;
}
實例變量和類變量(靜態變量)以及類方法
1. 實例變量+類變量=成員變量。
2. 類變量聲明時要帶有“static”關鍵字。
3. 實例變量使用時是被對象調用的,即“對象名.實例變量名”;
類變量使用時被類調用(也可以是對象),即“類名.類變量”( 對象名. 類變量)。
4. 某個對象更改其實例變量,其他對象不受影響;類變量改變時,所有對象的這個類變量都被改變。
5. 實例方法既能對類變量操作,用能對實例變量操作,而類方法只能對類變量進行操作。
Public class Child{
int age;
String name;
static int total=0;
public void joinGame(){
System.out.println("有一個小孩加進來啦");
total++;
}
}
public static void main(String []args)
{
Child ch1=new Child();
ch1.age=10;
ch1.name=”小小”;
System.out.println("共有"+ch1.total); }
靜態代碼塊static{...}
首先靜態代碼塊static{...}是在類被裝載的時候執行,且只執行一次;靜態代碼塊是在內存中開辟的一塊公共區域,類的多個實例共享的區域,任何該類的實例對該區域的操作都對所有所有該類的實例對該區域的操作都是生效的。
static代碼塊主要用在想在類加載的時候就初始化一些內容,如:初始化數據庫鏈接classforName("XXX"),
什么是是JAVA構造函數
每創建一個類的實例都去初始化它的所有變量是乏味的。如果一個對象在被創建時就完成了所有的初始工作,將是簡單的和簡潔的。因此,Java在類里提供了一個特殊的成員函數,叫做構造函數(Constructor)。
一個構造函數是對象被創建時初始對象的成員函數。它具有和它所在的類完全一樣的名字。一旦定義好一個構造函數,與new運算符一起使用,創建對象時就會自動調用它。構造函數沒有返回類型,即使是void類型也沒有。這是因為一個類的構造函數的返回值的類型就是這個類本身。構造函數的任務是初始化一個對象的內部狀態,所以用new操作符創建一個實例后,立刻就會得到一個清楚、可用的對象。
構造方法是一種特殊的方法,具有以下特點。
(1)構造方法的方法名必須與類名相同。
(2)構造方法沒有返回類型,也不能定義為void,在方法名前面不聲明方法類型。
(3)構造方法的主要作用是完成對象的初始化工作,它能夠把定義對象時的參數傳給對象的域。
(4)構造方法不能由編程人員調用,而要系統調用。
(5)構造函數不能被直接調用,必須通過new運算符在創建對象時才會自動調用(即在new的時候就開始執行構造函數里面的語句);而一般的方法是在程序執行到它的時候被調用的.
(6)一個類可以定義多個構造方法,如果在定義類時沒有定義構造方法,則編譯系統會自動插入一個無參數的默認構造器,這個構造器不執行任何代碼。
(7)構造方法可以重載,以參數的個數,類型,或排列順序區分。
(8)當定義一個類的時候,如果程序員不創建構造函數,則Java編譯器就會提供一個默認的不帶參數的構造函數。創建對象時系統就會自動調用這個默認的構造函數來創建類的對象。如
Public Class Person{
Int age;
String name;
//默認的構造函數為(java編輯器會自動生成的)
Public Person(){
}
Person p=new Person();
p.age=10;
p.name=”張三”;
}
java 構造函數的執行過程
類初始化時構造函數調用順序: public class Demo_1 { /** * @param args */ public static void main(String[] args){ new Money(); new Dollar(); new Rmb(); } } class Money{ public Money(){ System.out.println("Money is construct"); } } class Dollar{ public Dollar(){ System.out.println("Dollar is construct!"); } } class Rmb{ public Rmb(){ System.out.println("RMB is construct"); } } 輸出結果: Dollar is construct! RMB is construct
(1)初始化對象的存儲空間為零或null值;
(2)調用父類構造函數;
(3)按順序分別調用類成員變量和實例成員變量的初始化表達式;
Money is construct