專題——Java數據庫程序設計

Java數據庫程序設計

在這裏插入圖片描述

一.關係型數據庫系統

1.數據庫系統的結構
在這裏插入圖片描述
2.關係型數據庫系統

在關係型數據庫系統中,一行是一個元組,一列表示一個屬性

在這裏插入圖片描述

二.SQL

1.首先在命令行中進入MySQL文件所在的bin目錄

在這裏插入圖片描述
2.使用root權限登錄數據庫

在這裏插入圖片描述
2.查看有哪些數據庫,其中MySql和Test是必有的,MySql用於存儲服務器信息和其他用戶信息的表格;用於創建用戶,授予權限,撤銷用戶,爲管理員而創建;Test數據庫用於存儲數據或創建新的數據庫。
在這裏插入圖片描述
3.創建用戶名爲“Bob”,密碼爲“123” 的用戶
在這裏插入圖片描述
4.賦予權限
在這裏插入圖片描述
5.授予從任意IP訪問的特權
在這裏插入圖片描述
6.授予從特定IP遠程訪問的特權
在這裏插入圖片描述
7.使用Bob用戶登錄
在這裏插入圖片描述
其他常見MySql命令:

exit//退出

net stop mysql;//停止mysql服務
net start mtsql;//開啓mysql服務

source script.sql;//運行sql腳本文件

\c //退出當前命令,重新輸入

show grants;//查看權限

三.JDBC

1.JDBC是訪問關係型數據庫的API,提供訪問和操縱數據庫的接口。

在這裏插入圖片描述
2.Java開發數據庫應用需要用到的四個接口:

Driver//加載一個合適的驅動

Connection//連接到數據庫

Statement//創建和運行SQL語句

ResultSet//處理結果

四.訪問數據庫的典型步驟

【擴展】將mysql jar包添加至EclipseIDE中,可以訪問將jar包導入eclipse

1.加載合適的驅動
本人使用的數據庫是mySql,所以加載MySql數據庫驅動

	public static void main(String[] args) {
		try {
			//第一步:加載合適的驅動
			Class.forName("com.mysql.jdbc.Driver");
			//下面打印語句測試驅動是否加載成功,可選擇性添加
			System.out.println("驅動加載成功!");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

2.創建連接

			//第二步:建立連接
			Connection connection=DriverManager.getConnection("jdbc:mysql://192.168.0.103/javabook","Bob","123");
			//Javabook數據庫是登錄Bob用戶新創建的

【擴展】

數據庫 URL模式
Access jdbc:odbc:dataSource
MySql jdbc:mysql://hostname/dbname
Oracle jdbc:oracle:thin:@hostname:port#:oracleDBSID

3.創建SQL語句

不帶參數:Statement接口

    //第三步:創建SQL語句
    Statement statement=connection.createStatement();

帶參數或不帶參數都可以使用:PreparedStatement接口

PreparedStatement ps=connection.prepareStatement("select firstName,lastName from student where ssn=?");

【注意】使用PreparedStatement接口必須要寫好SQL語句,?(問號)代表佔位符,通過setter修改器傳值

ps.setString(1,"444111110");//1代表傳給第幾個參數,後面的代表傳的內容

用於執行SQL的存儲過程:CallableStatement接口

    CallableStatement cs=connection.prepareCall("{call samplePrepare (?,?,?)}");///三個?代表轉義語句;samplrPrepare是已經創建好的存儲過程

執行語句:Result Set接口

    ResultSet rs=ps.executeQuery();//執行查詢語句
	ResultSet rs2=ps.executeUpdate();//執行更新語句

處理結果

方法:當前初始位置是null,通過next方法移動

    while(rs.next()){
		System.out.println(rs.getString(1)+" "+rs.getString(2));//分別是firstName和lastName
			}

最終運行結果
在這裏插入圖片描述

五.獲取元數據

  • DatabaseMetaData接口:獲取數據庫範圍的信息
    DatabaseMetaData dmd=connection.getMetaData();

結果:
不止可以獲取這兩個信息,只要是數據庫範圍內的信息都可以
在這裏插入圖片描述

  • ResultSetMetaData接口:獲取結果集元數據
ResultSetMetaData rsmd=rs.getMetaData();
			for(int i=1;i<=rsmd.getColumnCount();i++){
				System.out.printf("%-10s\t",rsmd.getColumnName(i));
			}

結果:
在這裏插入圖片描述
【補充】

  • Java6不需要顯式加載驅動
  • split方法分割“.”時需要轉義

加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章