JDBC原理

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();
        }
    }

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • JDBC簡(jiǎn)介 SUN公司為了簡(jiǎn)化、統(tǒng)一對(duì)數(shù)據(jù)庫的操作,定義了一套Java操作數(shù)據(jù)庫的規(guī)范,稱之為JDBC。JDBC...
    奮斗的老王閱讀 1,638評(píng)論 0 51
  • 本人的環(huán)境為Myeclipse10、MySQL5.7.15 本文包括:簡(jiǎn)介JDBC編程步驟打通數(shù)據(jù)庫程序詳解—Dr...
    廖少少閱讀 4,357評(píng)論 7 39
  • JDBC概述 在Java中,數(shù)據(jù)庫存取技術(shù)可分為如下幾類:JDBC直接訪問數(shù)據(jù)庫、JDO技術(shù)、第三方O/R工具,如...
    usopp閱讀 3,641評(píng)論 3 75
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,734評(píng)論 18 399
  • --陸張?zhí)煲? 江南盛夏,拙政賞景。蓮葉田田,志清意遠(yuǎn)。
    令謙兌閱讀 817評(píng)論 0 1

友情鏈接更多精彩內(nèi)容