Part 1: Connect Database in Java


Bổ sung thêm bài viết . Đây là video từ cione về phần ConnectDatabase trong Java. Cái này mình hy vọng các bạn phải down về và bắt buộc luôn vì mình nghỉ nó rất là có ích cho việc tự học phần kết nối với CSDL chúc các học tốt.

Link down 4 video : http://www.mediafire.com/?q9chtg49f7im92f

Để chuẩn bị tốt cho bửa thực hành kế tiếp dể dàng hơn nên hôm nay mình sẻ làm một bài kết nối theo kết nối dùng chung. Mình dựa trên ý tưởng của thầy Võ Văn Hải làm các bạn có thể tham khảo ở đây : http://vovanhai.wordpress.com/java/l%E1%BA%ADp-trinh-java-nang-cao/jdbc-java-database-connectivity/t%E1%BA%A1o-d%E1%BB%91i-t%C6%B0%E1%BB%A3ng-connectionfactory-dung-cho-k%E1%BB%B9-thu%E1%BA%ADt-k%E1%BA%BFt-n%E1%BB%91i-dung-chung-connection-pool/

Theo mình biết là cô sữ dụng CSDL Acceess nên hôm nay mình củng làm theo Access luôn. nó có hơi khác so với các CSDL khác , nếu bạn nào quan tâm nhiều hơn thì có thể mail trực tiếp mình sẻ làm kết nối với các CSDL khác, MySQL, SQL Server hay Oracle củng được tuy các CSDL khác nhau nhưng thật chất không thay đổi nhiều.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Lớp này dùng để mở kết nối, tạo câu truy vấn , đóng kết nối
 * @author kobe
 */
public class ConnectionFactory {

    /**
     * 3 Đối tượng:
     * 1 - Connection : Dùng Cho Việc Kết nối
     * 2 - Statement  : Dùng cho việc tạo câu lệnh truy vấn.
     * 3 - ResultSet  : Dùng cho việc xữ lí câu lệnh truy vấn
     *                  trả về ( Câu lệnh Select ).
     */
    Connection connect = null;
    Statement stmt = null;
    ResultSet rs = null;

    /**
     * Hàm dùng để lấy kết nối đến Database
     * step 1 - Mình kiểm tra xem Kết nối mình đả có hay chưa !!
     * step 2 - Nếu chưa thì nó sẻ bằng null và mình khởi tạo lại.
     * step 3 - Nếu có rồi thì mình trả về luôn
     * @return Connection
     */
    protected Connection openConnect() throws Exception{
        if(connect == null){
        	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String path = "data/QLSV.accdb";
            String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};"+
                    "DBQ=" + path;
            try {
                this.connect = DriverManager.getConnection(url);
            } catch (SQLException e) {
                throw new Exception(e.getMessage() + "Kết nối thất bại đến Database.... ");
            }
        }
        return connect;
    }
    /**
     * tao một Statement để thực thi câu lệnh SQL
     * @return Statement
     */
    protected Statement getStatement() throws SQLException, Exception{
        if(stmt == null){
            stmt = openConnect().createStatement();
        }
        return stmt;
    }
    /**
     * Dùng để thực hiên câu lệnh Select
     * @param strSQL Chuổi truy vấn VD: Select * from NhanVien
     * @return ResultSet
     */
    public ResultSet executeQuery(String strSQL) throws Exception{
        try {
            rs = getStatement().executeQuery(strSQL);
        } catch (Exception e) {
            throw new Exception(e.getMessage() +" Error at : " + strSQL);
        }
        return rs;
    }
    /**
     * Dùng để thực hiên câu lệnh Insert, Update, Delete
     * @param strSQL Chuổi truy vấn VD: Insert into TableName values ('??','??')
     * @return Số dòng bị ảnh hưởng của câu lệnh
     */
    public int executeUpdate(String strSQL) throws Exception{
        int result = 0;
        try {
            result = getStatement().executeUpdate(strSQL);
        } catch (Exception ex) {
            throw new Exception(ex.getMessage() + " Error at: " + strSQL);
        }
        return result;
    }
    /**
     * Phương thức dùng để đóng kết nối.
     * @throws SQLException
     */
    public void closeConnet() throws SQLException{
        if(rs != null)
            rs.close();
        if(stmt != null)
            stmt.close();
        if(connect != null)
            connect.close();

    }
}

One Response to “Part 1: Connect Database in Java”

  1. y2z Says:

    thanks ban , bai viet hay ne
    minh se co gang


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: