簡單的選課系統(2)——資料庫的連線

一麗�發表於2019-02-24

前言

前面已經建立了資料庫,那麼接下來的任務就是利用java連線資料庫,並且實現選課的邏輯等等。所以這裡,我們就講講如何連線資料庫。

載入jdbc驅動程式

各種資料庫產品,由於廠商不一樣,連線的方式也有差異。jdbc為不同的資料庫提供了不同的驅動程式,通過驅動程式,jdbc遮蔽了各種資料庫之間的差異。所以,驅動程式是知道如何與實際的資料庫伺服器進行繪畫的權健部件。如果要載入驅動程式,只需要載入相應的類。驅動程式類自身的一個static程式碼塊自動生成驅動程式的例項。
載入過程是通過Class.forName方法將驅動載入到執行環境中。載入的時候,驅動程式會自動在驅動程式管理器中完成註冊。在家過程中,如果未找到驅動程式或者驅動程式版本不適應,會產生一個ClassNotFoundException錯誤,因而必須將Class.forName()方法放在try……catch塊中。h2的載入名稱可以在登陸的網頁看到:
在這裡插入圖片描述

定義連線url

指向資料庫的url’所使用的協議是jdbc協議,連同伺服器主機名,埠和資料庫名(或引用名)一起構成url。不同型別資料庫的url不同,h2的url可以在登陸網頁找到:
在這裡插入圖片描述

建立連線

在建立連線時,需要將url,資料庫使用者名稱和資料庫密碼傳遞給DriverManager類的getConnection方法。如果連線不成立,getConnection方法會丟擲SQLException異常。因襲,需要使用try……catch中

建立Statement物件

Statement’物件用來向資料庫傳送查詢和命令,它由Connection的createStatement方法建立

Statement statement =con.createStatement():

執行查詢或更新

1.executeQuery方法
該方法主要用來執行查詢命令,返回一個ResultSet物件,該物件可能為空,但是不會為null。例如,查詢users表的所有資料:

String sql="select * from users";
ResultSet rs=statement.executeQuery(sql);

2.executeUpdate方法
該方法主要用來執行插入,刪除,修改的操作,返回一個int證照型,表示更新的行數,可以為0.例如,向users表插入一行記錄:

String sql="insert into users(userName,passWord)values ('u2','123456')";
int i=statement.executeUpdate(sql);

3.execute方法
該方法主要用來執行一般的SQL命令,包括增刪改查以及資料定義,返回一個布林值,顯示是否返回一個查詢結果集ResultSet物件。例如,查詢users表的所有資料:

String sql="select * from users";
boolean value=statement.execute(sql);

結果處理

ResultSet物件的每天記錄結果代表一個資料錶行,處理結果最簡單的方式是使用ResultSet的next方法在表中移動,每次一行。
在一行內,ResultSet提供各種getXxx方法取得結果。

總結

以上過程就是java連線資料庫的過程,現在附上建立連線的程式碼:

package h2;
import java.sql.*;
import java.util.Properties;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.table.*;
public class connection {
	private static String  driverName="org.h2.Driver";
	private static String src_url="jdbc:h2:~/test";
	static Connection src_conn;
	static {
	Properties src_info=new Properties();
	src_info.put("user","sa");
	src_info.put("password","sa");
	src_info.put("EscapeProcessing","false");
	//String dst_url="jdbc:h2:~/test";
	 try{
         Class.forName(driverName);
       src_conn=DriverManager.getConnection(src_url,src_info);
  // Statement src_stmt=src_conn.createStatement();
  // src_stmt.execute("CREATE SCHEMA LIXIAOLI");
     }
     catch(Exception e) { 
    	 System.out.println(e.getMessage());
     }
}
public static Connection getConnection() {
return  src_conn;
}
}

如果你是用的h2資料庫,並且你的h2資料庫的賬號和密碼都是“sa”的話,這段程式碼可以直接複製使用。
在程式碼裡,把連線的程式碼塊放在Static中,在例項化該方法的時候就自動執行該程式碼塊。

相關文章