Giáo trình Java

Các đặc trưng của Java

„ Đơn giản

„ Hướng đối tượng

„ Độc lập phần cứng

„ Mạnh

„ Bảo mật

„ Phân tán

„ Đa luồng

„ Động

pdf239 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 2639 | Lượt tải: 3download
Tóm tắt nội dung Giáo trình Java, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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( )
tE ( )
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ả.
Databaseatabase
Network Interface
Server
AplicationAplication
JDBC DriverJDBC Driver
ODBC DriverODBC Driver
Network Interface
DiskDisk
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. 
Databaseatabase
Network Interface
Server
AplicationAplication
JDBC DriverJDBC Driver
Native Database LibraryNative Database Library
Network Interface
DiskDisk
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
Databaseatabase
Network Interface
Server
AplicationAplication
JDBC Driver ClientJDBC Driver Client
Network Interface
DiskDisk
Client
JDBC Driver ServerJDBC Driver Server
Native Database LibraryNative 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
Databaseatabase
Network Interface
Server
AplicationAplication
JDBC Driver JDBC Driver 
Network Interface
DiskDisk
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 
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:

  • pdfGiáo trình Java.pdf
Tài liệu liên quan