JDBC:Java database connectivity
不同數(shù)據(jù)庫廠商,會(huì)提供不同的架包,實(shí)現(xiàn)jdbc的一套接口標(biāo)準(zhǔn)
JDBC接口及數(shù)據(jù)庫廠商實(shí)現(xiàn)
DriverManager Connection DatabaseMetaData statemet ResultSet
工作原理:加載驅(qū)動(dòng)建立連接,創(chuàng)建語句對(duì)象,執(zhí)行SQL語句,處理結(jié)果集,關(guān)閉連接
加載驅(qū)動(dòng):
Class.forName("oracle.jdbc.diver.OracleDriver")
創(chuàng)建連接:
connection conn=DriverManager.getConnection("jdbc.oracle:thin:@IP:端口號(hào):數(shù)據(jù)庫名稱",“用戶名” ,“密碼”);
獲取連接:
Statement stmt=conn.createStatement();
執(zhí)行sql語句 :
stmt.executeUpdate(sql);
關(guān)閉語句對(duì)象,連接,釋放資源
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}

stmt
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* JDBC 是Java訪問各種數(shù)據(jù)庫的解決方案,這套解決方案是用一套標(biāo)準(zhǔn)接口來實(shí)現(xiàn)
* 即訪問數(shù)據(jù)庫的通用API(sun公司制定)而實(shí)現(xiàn)這些接口的類是由數(shù)據(jù)庫廠商提供的
* 我們總稱這些為JdbcDriver(mysql driver, oracle Driver)
* JDBC的工作原理:
* 驅(qū)動(dòng)程序:一組實(shí)現(xiàn)類,類中實(shí)現(xiàn)了接口的各種方法,在程序中調(diào)用的是接口,在運(yùn)行時(shí)實(shí)際調(diào)用的是
* 類中實(shí)現(xiàn)的方法(這是多態(tài)的一種體現(xiàn)形式)
* JDBC執(zhí)行過程:加載驅(qū)動(dòng)→獲取鏈接→創(chuàng)建語句對(duì)象,發(fā)送sql語句→執(zhí)行sql,獲取結(jié)果集→處理結(jié)果集→釋放資源
* @author itachi
*
*/
/*
* 導(dǎo)入jar包:創(chuàng)建lib文件夾,復(fù)制jar文件
* 右擊→build path→add build path
*/
/*
* 迭代結(jié)果集
*/
public class Demo6 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String driverName="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@localhost:1521:Orcl";
String userName="itachi";
String password="2649057";
String sql="select id,name from t_user";
Class.forName(driverName);//加載驅(qū)動(dòng)
Connection conn=DriverManager.getConnection(url, userName, password);//獲取鏈接
Statement stmt=conn.createStatement();//創(chuàng)建語句對(duì)象
ResultSet rs=stmt.executeQuery(sql);//執(zhí)行sql,獲取結(jié)果集
//移動(dòng)指針,指向第一條記錄,每執(zhí)行一次就向下移動(dòng)一次
//移動(dòng)結(jié)果集指針,返回boolean值,false表示沒有記錄,true表示有記錄
/* rs.next();
//getXXX("colun_name"),返回對(duì)應(yīng)字段值
int id=rs.getInt("id");
String name=rs.getString("name");
System.out.println("編號(hào)\t姓名\n"+id+"\t"+name);*/
//結(jié)果集為多條時(shí),使用循環(huán)迭代結(jié)果
while(rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
System.out.println("編號(hào)\t姓名\n"+id+"\t"+name);
}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();
}
}
}