bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

JDBC筆記介紹

1.JDBC的設計

馬村網站建設公司成都創新互聯公司,馬村網站設計制作,有大型網站制作公司豐富經驗。已為馬村上1000家提供企業網站建設服務。企業網站搭建\成都外貿網站制作要多少錢,請找那個售后服務好的馬村做網站的公司定做!

從一開始,Java技術開發人員就意識到了Java在數據庫應用方面的巨大潛力。從1995年開始,他們就致力于擴展Java標準類庫,使之可以運用SQL訪問數據庫。他們最初希望通過擴展Java,就可以讓人們“純”用Java語言與任何數據庫進行通信。但是,他們很快發現這是一項無法完成的任務:因為業界存在許多不同的數據庫,且他們所使用的協議也各不相同。盡管許多數據庫供應商都表示支持Java提供一套數據庫訪問的標準網絡協議,但是每一家企業都希望Java能采用自己的網絡協議。

所有的數據庫供應商和工具開發商都認為,如果Java能夠為SQL訪問提供一套“純”JavaAPI,同時提供一個驅動管理器,以允許第三方驅動程序可以連接到特定的數據庫,那它就會顯得非常有用。這樣,這樣數據庫供應商就可以提供自己的驅動程序,將其插入到驅動管理器中。這將成為一種向驅動管理器注冊第三方驅動程序的簡單機制。

這種接口組織方式遵循了微軟公司非常成功的ODBC模式,ODBC為C語言訪問數據庫提供了一套編程接口。JDBC和ODBC都基于同一個思想:根據API編寫的程序都可以與驅動管理器進行通信,而驅動管理器則通過驅動程序與實際的數據庫進行通信。

所有這些都意味著JDBC API是大部分程序員不得不使用的接口。

JDBC:java database connectivity SUN公司提供的一套操作數據庫的標準規范。

JDBC與數據庫驅動的關系:接口與實現的關系。

JDBC規范(掌握四個核心對象):

DriverManager:用于注冊驅動

Connection:表示與數據庫創建的連接

Statement:操作數據庫sql語句的對象

ResultSet:結果集或一張虛擬表

開發一個JDBC程序的準備工作:

JDBC規范在哪里:

JDK中:

java.sql.*;

javax.sql.*;

數據庫廠商提供的驅動:jar文件

*.jar

2.開發一個JDBC程序

實現查詢數據庫中的數據顯示在java的控制臺中

1、創建數據庫表,并向表中添加測試數據

2、創建java project項目,添加數據庫驅動

3、實現JDBC操作

//1、注冊驅動

DriverManager.registerDriver(new com.MySQL.jdbc.Driver());

//2、創建連接

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb1","root","password");

//3、得到執行sql語句的Statement對象

Statement stmt = conn.createStatement();

//4、執行sql語句,并返回結果

String sql = "select * from user";

ResultSet rs = stmt.executeQuery(sql);

//5、處理結果

while(rs.next()){

System.out.println(rs.getObject(1));

......

}

//6、關閉資源

rs.close();

stmt.close();

3.JDBC常用的類和接口詳解

1、java.sql.Drivermanager類 : 創建連接

a、注冊驅動

DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建議使用

原因有2個:

導致驅動被注冊2次

強烈依賴數據庫的驅動jar

解決辦法:

Class.forName("com.mysql.jdbc.Driver");

b、與數據庫建立連接

static Connection getConnection(String url, String user, String password) //試圖建立到給定數據庫 URL 的連接。

getConnection("jdbc:mysql://localhost:3306/day06", "root", "password");

URL:SUN公司與數據庫廠商之間的一種協議。

jdbc:mysql://localhost:3306/mydb1

協議 子協議 IP :端口號 數據庫

mysql: jdbc:mysql://localhost:3306/mydb1或者 jdbc:mysql:///mydb1(默認本機連接)

oracle: jdbc:oracle:thin:@localhost:1521:sid

Properties info = new Properties(); //要參考數據庫文檔

info.setProperty("user", "root");

info.setProperty("password","password");

getConnection(String url, Properties info)

getConnection(String url)

DriverManager.getConnection("jdbc:mysql://localhost:3306/day14?user=root&password=password");

2、java.sql.Connection接口:一個連接

接口的實現在數據庫驅動中。所有與數據庫交互都是基于連接對象的。

Statement createStatement(); //創建操作sql語句的對象

3、java.sql.Statement接口:操作sql語句,并返回相應結果的對象(小貨車)

接口的實現在數據庫驅動中。用于執行靜態SQL語句并返回它所生成結果的對象。

ResultSet executeQuery(String sql); //根據查詢語句返回結果集。只能執行select語句

int executeUpdate(String sql); //根據執行的DML(insert update delete)語句,返回受影響的行數

boolean execute(String sql); //此方法可以執行任意sql語句。返回boolean值,表示是否返回ResultSet結果集。僅當執行select語句,且有返回結果時返回true, 其它語句都返回false;無錫看婦科的醫院 http://www.ytsgfk120.com/

4、java.sql.ResultSet接口:結果集(客戶端存表數據的對象)

a、封裝結果集的

提供一個游標,默認游標指向結果集第一行之前

調用一次next(),游標向下移動一行

提供一些get方法

封裝數據的方法

Object getObject(int columnIndex); //根據序號取值,索引從1開始

Object getObject(String ColomnName); //根據列名取值。

將結果集中的數據封裝到javaBean中

java的數據類型與數據庫中的類型的關系

java 數據庫

byte tityint

short smallint

int int

long bigint

float float

double double

String char varchar

Date date

boolean next(); //將光標從當前位置向下移動一行

int getInt(int colIndex); //以int形式獲取ResultSet結果集當前行指定列號值

int getInt(String colLabel); //以int形式獲取ResultSet結果集當前行指定列名值

float getFloat(int colIndex); //以float形式獲取ResultSet結果集當前行指定列號值

float getFloat(String colLabel); //以float形式獲取ResultSet結果集當前行指定列名值

String getString(int colIndex); //以String 形式獲取ResultSet結果集當前行指定列號值

String getString(String colLabel); //以String形式獲取ResultSet結果集當前行指定列名值

Date getDate(int columnIndex);

Date getDate(String columnName);

void close(); //關閉ResultSet 對象

b、可移動游標的方法

boolean next(); //將光標從當前位置向前移一行。

boolean previous(); //將光標移動到此 ResultSet 對象的上一行。

boolean absolute(int row); //參數是當前行的索引,從1開始根據行的索引定位移動的指定索引行。

void afterLast(); //將光標移動到末尾,正好位于最后一行之后。

void beforeFirst(); //將光標移動到開頭,正好位于第一行之前。

4.SQL注入問題:preparedStatement

preparedStatement:預編譯對象, 是Statement對象的子類

特點:

性能要高

會把sql語句先編譯

sql語句中的參數會發生變化,過濾掉用戶輸入的關鍵字

PreparedStatement ps = null;

ResultSet rs = null;

try{

conn = DBUtils.getConnection();

String sql = "select * from user where name=? and password=?";

ps = conn.prepareStatement(sql); //注:創建此對象時,要把sql語句先放進去

//給預編譯sql語句賦值

ps.setString(1, name);

ps.setString(2, password);

rs = ps.executeQuery();

}catch(Exception e){

e.printStackTrace();

}

本文名稱:JDBC筆記介紹
文章路徑:http://vcdvsql.cn/article40/jhiseo.html

成都網站建設公司_創新互聯,為您提供網站設計公司品牌網站建設企業網站制作面包屑導航Google網站內鏈

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設