Bài giảng Lập trình Java - Huỳnh Công Pháp (Mới)

Các loại chương trình Java

Applets

Ứng dụng độc lập (console Application)

Ứng dụng giao diện (GUI Application)

Servlet

Ứng dụng cơ sở dữ liệu

Máy ảo Java

Là một phần mềm dựa trên cơ sở máy tính ảo

Là tập hợp các lệnh logic để xác định hoạt động của máy tính

Được xem như là một hệ điều hành thu nhỏ

Nó thiết lập lớp trừu tượng cho:

Phần cứng bên dưới

Hệ điều hành

Mã đã biên dịch

 

ppt239 trang | Chuyên mục: Java | Chia sẻ: yen2110 | Lượt xem: 475 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng Lập trình Java - Huỳnh Công Pháp (Mới), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
t) 
Lớp ‘StringReader’ trợ giúp đọc các ký tự đầu vào từ sâu chuỗi. 
Nó không bổ sung bất kỳ phương thức nào mà lớp Reader cung cấp. 
Lớp ‘StringWriter’ trợ giúp để ghi luồng kết xuất ký tự ra một đối tượng ‘StringBuffer’. 
Lớp này bổ sung thêm các phương thức sau: 
getBuffer ( ) 
toString ( ) 
Lớp PrinterWriter 
Thực hiện một kết xuất. 
Lớp này có phương thức bổ sung , trợ giúp in các kiểu dữ liệu cơ bản . 
Lớp PrintWriter thay thế lớp ‘PrintStream’ 
Thực tế cải thiện lớp ‘ PrintStream’; lớp này dùng một dấu tách dòng phụ thuộc nền tảng điểm các dòng thay vì ký tự ‘\n’. 
Cung cấp phần hỗ trợ cho các ký tự unicode so với PrintStream. 
Các phương thức: 
checkError ( ) 
setError ( ) 
Giao diện DataInput 
Được sử dụng để đọc các byte từ luồng nhị phân, và 
Is used to read bytes from a binary stream, and xây dựng lại dữ liệu trong một số kiểu dữ liệu nguyên thuỷ. 
Cho phép chúng ta chuyển đổi dữ liệu từ từ khuôn dạng UTF-8 được sửa đổi Java đến dạng chuỗi 
Định nghiã số phương thức, bao gồm các phương thức để đọc các kiểu dữ liệu nguyên thuỷ. 
Những phương thức giao diện DataInput 
boolean readBoolean ( ) 
byte readByte ( ) 
char readChar ( ) 
short readShort ( ) 
long readLong ( ) 
float readFloat ( ) 
int readInt ( ) 
double readDouble ( ) 
String readUTF ( ) 
String readLine ( ) 
Giao diện DataOutput 
Được sử dụng để xây dựng lại dữ liệu một số kiểu dữ liệu nguyên thuỷ vào trong dãy các byte 
Ghi các byte dữ liệu vào luồng nhị phân 
Cho phép chúng ta chuyển đổi một chuỗi vào khuôn dạng UTF-8 được sửa đổi Java và viết nó vào trong một dãy. 
Định nghĩa một số phương thức và tất cả phương thức kích hoạt IOException trong trường hợp lỗi. 
Các phương thức giao diện DataOutput 
void writeBoolean ( boolean b) 
void writeByte ( int value) 
void writeChar ( int value) 
void writeShort ( int value) 
void writeLong (long value) 
void writeFloat (float value) 
void writeInt ( int value) 
void writeDouble (double value) 
void writeUTF (String value) 
Lớp RandomAccessFile 
Cung cấp khả năng thực hiện I/O theo các vị trí cụ thể bên trong một tập tin. 
dữ liệu có thể đọc hoặc ghi ngẫu nhiên ở những vị trí bên trong tập tin thay vi một kho lưu trữ thông tin liên tục. 
phương thức ‘seek( )’ hỗ trợ truy cập ngẫu nhiên. 
Thực hiện cả đầu vào và đầu ra dữ liệu. 
Hỗ trợ các cấp phép đọc và ghi tập tin cơ bản. 
Kế thừa các phương thức từ các lớp ‘DataInput’ và ‘DataOutput’ 
Các phương thức của lớp RandomAccessFile 
seek( ) 
getFilePointer ( ) 
length( ) 
Gói java . awt . print 
Gồm có các giao diện 
Pageable : 
Định nghĩa các phương thức dùng để các đối tượng biểu thị các trang sẽ được in. 
Chỉ định số trang đã được in, và trang hiện tại hay là tranh giới trang đã được in 
Printable : 
Chi định phương thức ‘print( )’ sử dụng để in một trang trên đối tượng ‘Graphics’ 
PrinterGraphics : 
Cung cáp khả năng truy cập đối tượng ‘PrinterJob’ 
Giao diê n ‘ PrinterGraphics’ cung cấp các lớp sau: 
Paper 
Book 
PageFormat 
PrinterJob 
Gói ‘ java. awt .print’ kích hoạt các ngoại lệ: 
PrinterException 
PrinterIOException 
PrinterAbortException 
Chương IX 
KẾT NỐI CSDL 
Java Database Connectivity 
Tổng quan 
JDBC cung cấp tập các lớp và interface cho phép chương trình Java có thể nói chuyện được với hệ CSDL 
Tập các lớp của JDBC 
có thể làm việc được với 
mọi hệ csdl.  
Có 3 bước chính để kết nối CSDL. 
Nạp database drivers 
Tạo nối kết, Tạo đối tượng Connection 
Tạo đối tượng Statement để thực thi các lệnh sql.. 
Ví dụ 
try{ 
	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
	Connection con=DriverManager.getConnection("jdbc:odbc:ATM"); 
 Statement stmt = con.createStatement(); 
	: 
	: 
	: 
	: 
Database URL 
Database URL là một chuổi được dùng để kết nối csdl. 
cú pháp : 
jdbc : subprotocol name:other_stuff 
The subprotocol name được dùng tuỳ vào loại driver sử dụng để kết nối csdl. 
 ví dụ : subprotocol name là odbc nếu driver là cầu nối jdbcodbc 
Other _stuff cũng phụ thuộc vào loại driver nào được sử dụng. ví dụ nếu driver là cầu nối jdbcodbc thì thành phần này là tên của đối tượng ODBC 
Database Driver 
Bảo đảm ứng dụng java tương tác với mọi csdl dưới một cách thức chuẩn và duy nhất. 
Bảo đảm những yêu cầu từ chương trình sẽ được biểu diễn trong csdl dưới một ngôn ngữ mà csdl hiểu được 
nhận các yêu cầu từ client, chuyển nó nó vào định dạng mà csdl có thể hiểu được và thể hiện trong csdl. 
Nhận các phản hồi, chuyển nó ngược lại định dạng dữ liệu java và thể hiện trong ứng dụng. 
Nạp Driver 
Lớp DriverManager chịu trách nhiệm nạp driver và tạo kết nối đến csdl. 
DriverManager.registerDriver( new sun.jdbc.odbc.JdbcOdbcDriver()); 
hoặc 
Class . forName (String); 
This returns the object associated with the class with the given string name. 
Class. forName (“sun. jdbc . odbc . JdbcOdbcDriver ”); 
Equivalent to: new sun. jdbc . odbc . JdbcOdbcDriver ();  If you have a driver from another vendor, then find out the class name of that driver and load it instead. 
JDBC Driver 
Có 4 loại JDBC Driver 
Loại 1: JDBC/ODBC 
Loại 2: Native-API 
Loại 3: Open Protocol-Net 
Loại 4: Proprietary-Protocol- Net 
Loại 2,3,4 nói chung được viết bởi nhà cung cấp csdl. hiệu quả hơn loại 1 nhưng thực hiện phức tạp hơn. 
Loại I JDBC/ODBC 
jdk hỗ trợ cầu nối jdbc-odbc ( jdbc-odbc bridge). 
Mềm dẻo nhưng không hiệu quả. 
Database 
Network Interface 
Server 
Aplication 
JDBC Driver 
ODBC Driver 
Network Interface 
Disk 
Client 
Loại 2: Native-API 
Tốt hơn loại 1, loại này cho phép JDBC giao tiếp trực tiếp với các driver hay các hàm API của CSDL. 
Database 
Network Interface 
Server 
Aplication 
JDBC Driver 
Native Database Library 
Network Interface 
Disk 
Client 
Loại 3: Open Protocol-Net 
Drivers 
Có thể chuyển các yêu cầu đến các csdl nằm ở xa. 
Có thể giao tiếp với nhiều loại CSDL. 
Không phải của nhà cung cấp csdl 
Tất cả bằng mã java 
Database 
Network Interface 
Server 
Aplication 
JDBC Driver Client 
Network Interface 
Disk 
Client 
JDBC Driver Server 
Native Database Library 
Loại 4: Proprietary-Protocol Net 
100% java 
Có khả năng giao tiếp trực tiếp với hệ CSDL không cần chuyển đổi 
Database 
Network Interface 
Server 
Aplication 
JDBC Driver 
Network Interface 
Disk 
Client 
Gói Java . sql 
Cung cấp tập hợp các lớp và interface dùng để trao đổi với CSDL. 
Các lớp 
DriverManager	 
Date, Time	 
Timestamp	 
Types	 
Các Interfaces 
Driver 
Connection 
DatabaseMetaData 
Statement 
PreparedStatement 
CallableStatement 
ResultSet 
ResultSetMetaData 
Đối tượng Statement 
Đối tượng Connection chứa liên kết trực tiếp đến csdl. 
Sử dụng đối tượng Connection để tạo đối tượng Statement. 
Statement s = con. createStatement (); 
Đối tượng này có nhiệm vụ gửi các câu lệnh sql đến csdl. 
 executeQuery (String) or executeUpdate (String) method 
Cùng một đối tượng Statement có thể sử dụng cho nhiều câu lệnh sql khác nhau. 
Có 3 phương thức thực thi 
executeQuery () 
executeUpdate () 
execute() 
The executeQuery () 
Nhận câu lệnh SQL (select) làm đối số, trả lại đối tượng ResultSet 
ResultSet rs = s. executeQuery (“SELECT * FROM Books”); 
Phương thức executeUpdate () 
Nhận các câu lệnh sql dạng cập nhật 
Trả lại số nguyên biểu thị số hàng được cập nhật. 
UPDATE , INSERT, or DELETE. 
Phương thức execute () 
Được áp dụng cho trường hợp không rõ loại sql nào được thựưc hiện. 
Được áp dụng cho trường hợp câu lệnh sql đwocj tạo ra tự động bởi chương trình. 
ResultSet 
Chứa một hoặc nhiều hàng dữ liệu từ việc thực hiện câu lệnh truy vấn. 
Có thể lấy dữ liệu từng hàng dữ liệu một trong ResultSet. 
Sử dụng phương thức next() để di chuyển đến hàng dữ liệu tiếp theo trong ResultSet. 
Hàm next() trả lại true chỉ rằng hàng chứa dữ liệu, trả lại false hàng cuối không chứa dữ liệu. 
Thực hiện 
while ( rs .next()){// examine a row from the results} 
Để lấy dữ liệu ở các cột trên mỗi hàng của ResultSet, ta dùng các phương thức. 
get type( int | String) 
Đối số là chỉ số cột tính từ 1. 
Áp dụng cho các cột có kiểu dữ liệu là int, float, Date..... 
Ví dụ : 
String isbn = rs . getString (1); // Column 1 
float price = rs . getDouble (“Price”); 
ResultSet Metadata 
Đối tượng này cho biết thông tin về ResultSet 
ResultSet rs = stmt. executeQuery ( SQLString ); ResultSetMetaData rsmd = rs . getMetaData (); int numberOfColumns = rsmd . getColumnCount (); 
 getColumnName ( int column) 
Prepared Statements 
To execute a Statement object many times, it will reduce execution time to use PreparedStatement object 
PreparedStatement object 
unlike a Statement object, it is given an SQL statement when it is created. 
The advantage to this is that in most cases, this SQL statement will be sent to the DBMS right away, where it will be compiled. 
As a result, the PreparedStatement object contains not just an SQL statement, but an SQL statement that has been precompiled. 
This means that when the PreparedStatement is executed, the DBMS can just run the PreparedStatement 's SQL statement without having to compile it first 
Các đối tượng Statement khác 
Prepared Statements 
Callable Statement 
Database Metadata 
Đối tượng này cho biết thông tin về csdl. 
Chương trình mẫu 
import java.sql.*; 
class JDBCDemo1 { 
	public static void main(String[] args) { 
 try{ 
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
 Connection con=DriverManager.getConnection("jdbc:odbc:Accserver"); 
 Statement stmt = con.createStatement(); 
	ResultSet rs = stmt.executeQuery(args[0]); 
	ResultSetMetaData rsmd = rs.getMetaData(); 
	int numberOfColumns = rsmd.getColumnCount(); 
	for(int j=1; j<=numberOfColumns;j++) { 
	System.out.println(rsmd.getColumnLabel(j)); 
	} 
	while(rs.next()) { 
	for(int i=1; i<=numberOfColumns;i++){ 
	System.out.println(rs.getObject(i)); 
	}} 
	rs.close(); 
	stmt.close(); 
 } catch(Exception e){ System.out.println("Error " + e); 
	 } 	 
	 } 
} 

File đính kèm:

  • pptbai_giang_lap_trinh_java_huynh_cong_phap_moi.ppt
Tài liệu liên quan