[java] Kết nối CSDL Access bằng driver Access ( dùng nhanh gọn hơn ODBC nhiều )

chuotfx

Member
4/4/10
365
25
18
theo như các thầy dạy ở trường thì việc kết nối cơ sở dữ liệu thông qua JDBC có nhiều phương pháp khác nhau, và thầy đã demo cầu nối JDBC và ODBC

nhưng cầu nối ODBC có 1 số bất lợi

  • mỗi khi muốn dùng thì phải tạo đối tượng ODBC từ win
  • kô hỗ trợ UTF-8 ( cho dù nó kêt nối với hệ quản trị cơ sỡ dữ liệu nào đi nữa...)
  • Và quan trọng là vào phòng thi gặp máy bà điên kô kết nối đc là đi lun, nên cái này thuộc dạng hên xui và ăn ở ( điển hình là anh Liêm, tuy cài win 7, nhưng vào ODBC kô có Access nên ngậm đắng mà cài lại XP )
  • còn cái j nữa thì anh em tự tìm
Bây giờ quan tâm tới driver, đối với ODBC thì JDBC của java chỉ quan tâm tới kết nối, còn lại nó kô quan tâm tới hệ CSDL còn với cách dùng drive thì chúng ta cần phải quan tâm đến hệ quản trị CSDL ===> tức là mỗi nhà sản xuất CSDL thì học cung cấp cho chúng ta 1 driver để kết nối tới nó
Vì vậy, vơi SQL, MySQL, DB,Access.... thì chúng hoàn toàn khác nhau.
==========================================
Lúc này, phục vụ cho thi nên dùng Access :
Ưu điểm :

  • nhõ, nhẹ, cơ động cao
  • thích hợp cho những bạn con nhà nghèo mà ba má lại động ( như mình chẳng hạn ) thì kô có laptop nên mỗi lần làm CSDL thì tới máy khác là phải cài lại toàn bộ hệ CSDL, quá tốn thời gian, còn Access thì chúng ta chỉ copy file đem theo là xong
  • Còn những ai làm thực tập nhận thức các đề từ 84 đếm 103 ( là quản lý ) thì dùng cái này sướng hơn nhiều ....
  • hỗ trợ UTF-8 nếu dùng các phiên bản cao hơn thì có lun UTF-16 hay 32, nêu việc sữ dụng tiếng việt là vô tư...
  • .....
Khuyết điểm:

  • Chậm hơn ODBC ( cái này là hiễn nhiên )
  • Nếu mà kết nối và thực hiện lệnh liên tục thì em nó tự ái, tự dis liền...nên cái này chú ý nghe
  • Vì access kô mạnh nên các bạn chỉ dùng nó vào mấy cái nhõ nhõ, còn làm những cái lớn thì dùng SQL là ok nhất....
  • .....
Tiếp theo là tải driver, cái này phải nhờ anh Google là ok nhất
còn kô các bạn có thể tải từ link này :
Code:
http://www.mediafire.com/?7rr9zhac37r2zdb
Tiếp theo là việc sử dụng driver như thế nào , mình sẽ demo trên NetBean và Eclipse cho xem

Add driver thành thư viện của IDE

  • Eclipse : kích chuột phải vào project và chọn properties

  • NetBean




============================
tiếp theo là cách kết nối

PHP:
Class.forName("com.hxtt.sql.access.AccessDriver");
Connection con = DriverManager.getConnection("jdbc:access:/Demo2.mdb");
com.hxtt.sql.access.AccessDriver là URL để kiểm tra driver với CSDL
jdbc:access:/Demo2.mdb cũng như những cái khác, bao gồm 3 phần jdbc là của java, access là của Access , còn /Demo2.mdb là file Access nó đặt tại mã nguồn thì kô cần đường dẫn, nếu đặt chỗ khác thì các bạn chỉnh lại đường dẫn cho nó... nên cơ động là chỗ này

===========
thế là coi như xong, việc còn lại thì dùng y như ODBC thui, rất là đơn giản

=================
Sau đây mình cung cấp thêm 1 trạng thái bảo vệ CSDL của bạn, nhưng muốn dùng nó thì bạn phải cài đặt user, pass cho hệ quản trị CSDL của mình

PHP:
Properties info=new Properties();
            info.put("charSet","utf-8");
            info.put("user","Admin");
            info.put("password","123456");
dùng đối tượng Properties, vì đã dùng driver thì kô có hỗ trợ sẳn hết như ODBC nên đôi lúc mình phải tùy chĩnh

như trên là dùng utf-8
user đăng nhập vào CSDL là "Admin"
pass là "123456"

sử dụng như thế này

PHP:
Connection con = DriverManager.getConnection("jdbc:access:/Demo2.mdb",info);
mình bỏ nó vào chỗ kết nối

================================================
để kết thúc tut này sẽ demo 1 bài dùng driver

code
PHP:
package AccessJava;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JRootPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;

public class DemoDriverAccess extends JFrame {
    public  DemoDriverAccess() {
        super("Demo Driver Access");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(new FlowLayout(FlowLayout.CENTER));
        addItem();
        setUndecorated(true);
        getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
        pack();
        setVisible(true);
    }
    
    private void addItem() {
        try {
            
            Properties info=new Properties();
            info.put("charSet","utf-8");
            info.put("user","Admin");
            info.put("password","123456");
            Class.forName("com.hxtt.sql.access.AccessDriver");
            Connection con = DriverManager.getConnection("jdbc:access:/Demo2.mdb",info);
            
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select * from ten");
            ResultSetMetaData rsm = rs.getMetaData();
            
            //----&#&#&#&#[ tạo tiêu đề &#&#&#&#]----//
            int numCol = rsm.getColumnCount();
            Vector vtCol = new Vector(numCol,numCol);
            for(int i=1;i<=numCol;i++){
                vtCol.add(rsm.getColumnName(i));
            }
            
            //----&#&#&#&#[ tạo data&#&#&#&#]----//
            Vector vtData = new Vector(10,10);
            Vector temp;
            while(rs.next()){
                temp = new Vector(numCol);
                for(int i=1;i<=numCol;i++){
                    temp.add(rs.getString(i));
                }
                vtData.add(temp);
            }
            
            JTable table = new JTable(vtData,vtCol);
            JTableHeader header = table.getTableHeader();
            header.setBackground(Color.YELLOW);
            table.setPreferredScrollableViewportSize(new Dimension(500, 70));
            table.setFillsViewportHeight(true);
            add( new JScrollPane(table));
            
        } catch (Exception e) {
        }
        
    }

    public static void main(String&#&#&#&#[&#&#&#&#] args) {
        new DemoDriverAccess();
    }

}
kết quả chạy



trong đó có 1 số lệnh rất hay, các bạn tự tìm hiểu nghe, làm cho bài java mình thêm đẹp

Cuối cùng, chúc các bạn thành công :ghost34:
p/s: nếu thấy hay thì thanks 1 cái coi như là động viên mình, hehehehe
 

nhohb

New Member
9/1/11
2
0
0
Ðề: [java] Kết nối CSDL Access bằng driver Access ( dùng nhanh gọn hơn ODBC nhiều )

cái này chỉ cho phép thực hiện mỗi lần 50 lệnh truy vấn thui, hết 50 lần thì nó bắt mua bản quyền đó, nếu bạn chạy 1 ứng dụng lên và thực hiện 50 lần truy vấn csdl thì nó không cho làm nữa, chán thật, nếu như thế này thì làm sao làm các dự án lớn đây, có ai giúp tôi cái khác không, Thanks nhiều nhé các bạn!
 

geminious

Member
8/12/10
142
6
16
Hà Nội
Ðề: [java] Kết nối CSDL Access bằng driver Access ( dùng nhanh gọn hơn ODBC nhiều )

Mình thấy thằng này là JDBC Type 4 mà :-? mà Type 4 làm dự án thì cứ MySQL với SQLServer mà chơi chứ có dự án nào xài access đâu :-?
 

pr0t0ss9x

New Member
10/3/11
18
0
0
Ðề: [java] Kết nối CSDL Access bằng driver Access ( dùng nhanh gọn hơn ODBC nhiều )

cứ SQL cho nó lành :D
 

ken.culu

New Member
10/5/11
4
0
0
Ðề: [java] Kết nối CSDL Access bằng driver Access ( dùng nhanh gọn hơn ODBC nhiều )

Cho mình hỏi làm sao để chèn 1 Jtable vào TextArea được bạn nào có VD cụ thể giúp mình với thank
 

chuotfx

Member
4/4/10
365
25
18
Ðề: [java] Kết nối CSDL Access bằng driver Access ( dùng nhanh gọn hơn ODBC nhiều )

Cho mình hỏi làm sao để chèn 1 Jtable vào TextArea được bạn nào có VD cụ thể giúp mình với thank
ác quá bạn ơi, Jtable sao chén vào đc TextArea, kiếm cái component nào đó mà bỏ nó vào, vấn đề này kô liên quan đến DataBase, bạn nên lập topic mà hỏi
 

ce_itcn

Moderator
30/3/11
102
18
18
Ðề: [java] Kết nối CSDL Access bằng driver Access ( dùng nhanh gọn hơn ODBC nhiều )

Ở đâu có cái hướng dẫn đọc, hiển thị , bổ sung, xóa cơ sở dữ liệu không nhỉ?
 

thanhvan12

New Member
28/3/12
2
0
0
Ðề: [java] Kết nối CSDL Access bằng driver Access ( dùng nhanh gọn hơn ODBC nhiều )

Chào các bạn

Các bạn đang tìm hiểu về access thì hãy vào :http://videobook.vn/ACCESS-CO-BAN/vi/bvct/id260/ để có thể download một cách miễn phí tài liệu access cơ bản , bạn chỉ cần vào đăng kí thành viên để được download miễn phí :-B


Chúc các bạn thành công !>:D<
 

hongtamtk

Member
22/1/12
115
7
18
29
me.zing.vn
Ðề: [java] Kết nối CSDL Access bằng driver Access ( dùng nhanh gọn hơn ODBC nhiều )

Làm thì được quan trọng Access ko hổ trợ Unicode, viết chương trình xong rồi mới thấy điều đó, xui vãi~X(