資料庫的基本操作

2021-08-26 23:30:50 字數 2454 閱讀 5444

jdbc

簡介:程式可以通過jdbc api連線到關聯式資料庫,並使用結構化查詢語句來完成資料庫的查詢更新等操作

可以完成的工作:建立與資料庫的連線、執行sql語句、獲得sql語句的執行結果。

jdbc常用介面和類簡介

drivermanager:用於管理jdbc驅動的服務類,程式中使用該類的主要功能是獲取connection物件。

statement:用於執行sql語句的工具介面。該物件既可用於執行ddl(資料定義語言)、dcl(資料控制語言),也可用於執行dml(資料操作語言),還可以執行sql語句。當執行sql查詢時,返回查詢的結果集。

常用的方法:

(1)resultset  executequery(string  sql)  throws sqlexception:該方法用於執行查詢語句,並返回查詢結果對應的resultset物件。該方法只能用於執行查詢語句

(2)int  executeupdate(string sql) throws sqlexception:該方法用於執行dml語句,並返回受影響的行數。該方法用於執行ddl語句,執行ddl語句將返回0

(3)boolean  execute(string  sql) throws  sqlexception:該方法可執行任何sql語句。如果執行後第乙個結果集為resultset物件,則返回true,如果執行後第乙個結果為受影響的行數或沒有任何結果集,則返回false。

preparedstatement:預編譯的statement物件。preparedstatement的子介面,允許資料庫預編譯sql語句,以後每次只改變sql命令的引數,避免資料庫每次都需要編譯sql語句,因此效能更好。

preparedstatement同樣也有executeupdate(),executequery(),和execute()三個方法,只是這三個方法無需接收sql字串,因為preparedstatement物件已經預編譯了sql命令。

resultset:結果集物件。該物件包含訪問查詢結果的方法,resultset可以通過列索引或列名獲得資料。

jdbc程式設計步驟

載入資料庫驅動,通常使用class類的forname()靜態方法來載入驅動

示例:class.forname(driverclass)。driverclass為「com.mysql.jdbc.driver」

通過drivermanager獲取資料庫連線。

示例:drivermanager.getconnection(string  url,string   user,  string   pass)

通過connection物件建立statement物件。

使用statement執行sql語句。

操作結果集。

**資料集。

總體的步驟就是:建立驅動(針對不同的資料庫建立不同的驅動,對應不同資料庫的介面)、連線資料庫(連線到具體的資料庫)、建立statement物件(預編譯物件)、使用statement執行sql語句(執行具體的sql語句,對資料庫進行操作)、操作結果集(對資料庫操作後,返回操作後的結果集)。

執行sql語句的方式

executeupdate方法

使用executeupdate直接呼叫statement物件的executeupdate方法即可,引數為dml語句或者ddl語句。執行dml返回的是受影響的行數,執行ddl返回的是0。

使用execute方法執行sql語句

execute方法機會可以執行所有的sql語句,但是執行比較麻煩,在不知道sql語句的型別時,只能使用execute方法,其他情況最好使用executequery方法和executeupdate方法。使用execute返回的是boolean值,表明是否返回了resultset物件。statement物件提供了兩個方法獲取執行結果。getresultset():獲取該statement執行的查詢語句所返回的resultset物件。getupdatecount():獲取該statement()執行的dml語句所影響的記錄行數。

使用preparedstatement執行sql語句

如果經常需要反覆執行一條結構相似的語句,如反覆插入某條資料,可以使用佔位符(?)引數的sql語句來代替。jdbc提供了preparedstatement介面,它是statement介面的子介面,可以預編譯sql語句,預編譯後的sql語句被儲存在preparedstatement 物件中,然後可以使用該物件多次高效的執行該語句。示例

//建立乙個preparedstatement物件

preparedstatement  pstmt=conn.preparestatement(「insert  into  student_table  values(null,?,1)」);

pstmt.setstring(1,」姓名」);

注意:使用preparedstatement執行帶佔位符引數的sql語句時,sql語句中的佔位符引數只能是代替普通值,不能使用佔位符代替表名、列名等資料庫物件,更不要用佔位符代替sql語句中的insert、select等關鍵字!

示例**在下一節給出。

資料庫 資料庫基本操作

操作練習 修改表結構 表資料的操作 實現 1 建立表 create table student stu no char 12 not null primary key,stu name varchar 20 not null gender tinyint 1 default1,age tinyint...

資料庫的基本操作

sql server 2000 是一種採用 t sql 語言的大型關係型資料庫管理系統。資料訓的資料按不同的形式組織在一起,構成了不同的資料物件。以二維表的形式組織在一起的資料就構成了資料庫的表物件,資料庫是資料庫物件的容器。資料庫物件沒有對應的磁碟檔案,整個資料庫對應磁碟上的檔案與檔案組。一 sq...

資料庫的基本操作

import studentmanager.h import import studentmodel.h 單例 全域性變數,預設為空 static studentmanager manager nil 定義資料庫指標物件 static sqlite3 dbpoint nil implementati...