1肆良、java.sql.Drivermanager類:創(chuàng)建連接
a、注冊(cè)驅(qū)動(dòng)
DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建議使用
原因有2個(gè):
>導(dǎo)致驅(qū)動(dòng)被注冊(cè)2次。
>強(qiáng)烈依賴數(shù)據(jù)庫(kù)的驅(qū)動(dòng)jar
解決辦法:
Class.forName("com.mysql.jdbc.Driver");
b媳纬、與數(shù)據(jù)庫(kù)建立連接
static Connection getConnection(String url, Stringuser, String password)
試圖建立到給定數(shù)據(jù)庫(kù)URL的連接打却。
getConnection("jdbc:mysql://localhost:3306/day06",
"root", "root");
URL:SUN公司與數(shù)據(jù)庫(kù)廠商之間的一種協(xié)議。
jdbc:mysql://localhost:3306/day06
協(xié)議子協(xié)議IP :端口號(hào)數(shù)據(jù)庫(kù)
mysql: jdbc:mysql://localhost:3306/day14或者jdbc:mysql:///day14(默認(rèn)本機(jī)連接)
oracle: jdbc:oracle:thin:@localhost:1521:sid
Propertiesinfo = new Properties();//要參考數(shù)據(jù)庫(kù)文檔
info.setProperty("user","root");
info.setProperty("password","root");
getConnection(String url, Properties info)
getConnection(String url)
DriverManager.getConnection("jdbc:mysql://localhost:3306/day14?user=root&password=root");
2枝笨、java.sql.Connection接口:一個(gè)連接
接口的實(shí)現(xiàn)在數(shù)據(jù)庫(kù)驅(qū)動(dòng)中袁铐。所有與數(shù)據(jù)庫(kù)交互都是基于連接對(duì)象的。
StatementcreateStatement(); //創(chuàng)建操作sql語(yǔ)句的對(duì)象
3横浑、java.sql.Statement接口:操作sql語(yǔ)句剔桨,并返回相應(yīng)結(jié)果的對(duì)象
接口的實(shí)現(xiàn)在數(shù)據(jù)庫(kù)驅(qū)動(dòng)中。用于執(zhí)行靜態(tài)SQL語(yǔ)句并返回它所生成結(jié)果的對(duì)象徙融。
ResultSetexecuteQuery(String sql)根據(jù)查詢語(yǔ)句返回結(jié)果集洒缀。只能執(zhí)行select語(yǔ)句。
int executeUpdate(String sql)根據(jù)執(zhí)行的DML(insert
update delete)語(yǔ)句欺冀,返回受影響的行數(shù)树绩。
booleanexecute(String sql)此方法可以執(zhí)行任意sql語(yǔ)句。返回boolean值隐轩,表示是否返回ResultSet結(jié)果集饺饭。僅當(dāng)執(zhí)行select語(yǔ)句,且有返回結(jié)果時(shí)返回true,其它語(yǔ)句都返回false;
4职车、java.sql.ResultSet接口:結(jié)果集
a瘫俊、封裝結(jié)果集的。
提供一個(gè)游標(biāo)悴灵,默認(rèn)游標(biāo)指向結(jié)果集第一行之前扛芽。
調(diào)用一次next(),游標(biāo)向下移動(dòng)一行积瞒。
提供一些get方法川尖。
封裝數(shù)據(jù)的方法
Object
getObject(int columnIndex);根據(jù)序號(hào)取值,索引從1開(kāi)始
Object
getObject(String ColomnName);根據(jù)列名取值茫孔。
將結(jié)果集中的數(shù)據(jù)封裝到j(luò)avaBean中
java的數(shù)據(jù)類型與數(shù)據(jù)庫(kù)中的類型的關(guān)系
byte ?tityint
short ?smallint
int ? int
long ?bigint
float ?float
double ?double
Stringchar varchar
Date ?date
boolean next()將光標(biāo)從當(dāng)前位置向下移動(dòng)一行
int getInt(int colIndex)以int形式獲取ResultSet結(jié)果集當(dāng)前行指定列號(hào)值
int getInt(String colLabel)以int形式獲取ResultSet結(jié)果集當(dāng)前行指定列名值
float getFloat(int colIndex)以float形式獲取ResultSet結(jié)果集當(dāng)前行指定列號(hào)值
float getFloat(String colLabel)以float形式獲取ResultSet結(jié)果集當(dāng)前行指定列名值
String getString(int colIndex)以String形式獲取ResultSet結(jié)果集當(dāng)前行指定列號(hào)值
String getString(String colLabel)以String形式獲取ResultSet結(jié)果集當(dāng)前行指定列名值
Date getDate(int columnIndex);
Date getDate(String columnName);
void close()關(guān)閉ResultSet對(duì)象
b叮喳、可移動(dòng)游標(biāo)的方法
boolean next()將光標(biāo)從當(dāng)前位置向前移一行。
boolean previous()
將光標(biāo)移動(dòng)到此ResultSet對(duì)象的上一行缰贝。
boolean absolute(int row)參數(shù)是當(dāng)前行的索引馍悟,從1開(kāi)始
根據(jù)行的索引定位移動(dòng)的指定索引行。
void afterLast()
將光標(biāo)移動(dòng)到末尾揩瞪,正好位于最后一行之后赋朦。
void beforeFirst()
將光標(biāo)移動(dòng)到開(kāi)頭,正好位于第一行之前。
5宠哄、釋放資源
資源有限壹将,要正確關(guān)閉。