Cấp bậc tác giả:

TRAINING

JAVA - Lập trình Cơ sở dữ liệu với JTDS

Được viết bởi webmaster ngày 15/05/2018 lúc 02:05 PM
Sử dụng jtds đòi hỏi phải dùng thư viện jtds-1.3.1-dist.zip; Sau khi thêm thư viện vào, cần phải cho phép jtds driver làm việc với SQL(SSO Failed: Native SSPI library not loaded) bằng cách vào đường dẫn chương trình Java(ví dụ: Java\jre7\bin) copy ntlmauth.dll theo các phiên bản Win 32/64 tương ứng. Hoặc Window / System32.
  • 0
  • 8250

JAVA - Lập trình Cơ sở dữ liệu với JTDS

Demo1: Hiển thị danh sách
Tạo Class KetNoiSQL.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author DOTNETGROUP
 */
public class KetNoiSQL {

    private Connection con = null;

    public KetNoiSQL() {
        String url = "net.sourceforge.jtds.jdbc.Driver";
        try {
            Class.forName(url);
            String dbUrl = "jdbc:jtds:sqlserver://DOTNETGROUP:1433/Bank2017";
            con = DriverManager.getConnection(dbUrl);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(KetNoiSQL.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(KetNoiSQL.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public ResultSet GetResultSet(String tableName) throws SQLException {
        ResultSet rs = null;
        Statement stmt = con.createStatement();
        String sql = "select * from " + tableName;
        rs = stmt.executeQuery(sql);
        return rs;
    }

    public void Close() throws Exception {
        con.close();
    }

    public static void main(String[] args) {
      KetNoiSQL kn = new KetNoiSQL();
        try {
            ResultSet rs= kn.GetResultSet("Account");//Table Name
            while(rs.next())
            {
                System.out.println(rs.getString("description"));//Field Name
            }
            kn.Close();
        } catch (SQLException ex) {
            Logger.getLogger(KetNoiSQL.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(KetNoiSQL.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

Kết quả hiển thị:

lap-trinh-csdl-1.png

JDBC-ODBC không còn được sử dụng trong JDK 8 trở lên và Oracle đã không còn hỗ trợ Sun(Sun đã được Oracle mua lại)
Sử dụng jtds đòi hỏi phải dùng thư viện jtds-1.3.1-dist.zip; Sau khi thêm thư viện vào, cần phải cho phép jtds driver làm việc với SQL(SSO Failed: Native SSPI library not loaded) bằng cách vào đường dẫn chương trình Java(ví dụ: Java\jre7\bin) copy ntlmauth.dll theo các phiên bản Win 32/64 tương ứng. Hoặc Window / System32.
lap-trinh-csdl-2.png

 
Ví dụ: Hiển thị form như hình, sử dụng vector
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author webmaster@dotnet.vn
 */
public class JDBCDemo {

    private Connection con = null;

    public JDBCDemo() {
        String url = "net.sourceforge.jtds.jdbc.Driver";
        try {
            Class.forName(url);
            String db = "jdbc:jtds:sqlserver://DOTNETGROUP:1433/Bank2017";
            con = DriverManager.getConnection(db);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(KetNoiSQL.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(KetNoiSQL.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public ResultSet getResultSet() throws SQLException {
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("Select * from Account");
        return rs;
    }
    
    public void Close() throws Exception {
        con.close();
    }

    public static void main(String[] args) {
        Vector vData = null, vTitle = null;
        try {
            JDBCDemo kn = new JDBCDemo();
            ResultSet rs = kn.getResultSet();
            ResultSetMetaData rsmd = rs.getMetaData();
            int numberOfColumns = rsmd.getColumnCount();
            vTitle = new Vector(numberOfColumns, 0);
            for (int j = 1; j <= numberOfColumns; j++) {
                vTitle.add(rsmd.getColumnLabel(j));
            }
            vData = new Vector(10, 10);
            while (rs.next()) {
                Vector row = new Vector(numberOfColumns, 0);
                for (int i = 1; i <= numberOfColumns; i++) {
                    row.add(rs.getObject(i));
                }
                vData.add(row);
            }
            rs.close();
            kn.Close();
        } catch (Exception e) {
            System.out.println("Error " + e);
        }
        JScrollPane tableResult = new JScrollPane(new JTable(vData, vTitle));
        JFrame f = new JFrame();
        f.setSize(600, 480);
        f.setContentPane(tableResult);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.show();
    }
}
lap-trinh-csdl-3.png

Bài tập: Xây dựng chương trình rút tiền tự động
- Kiểm tra tài khoản có tồn tại?
- Kiểm tra mật khẩu nhập có đúng không?
- Hiển thị thông tin người dùng bao gồm: accName, password, balance, IdNo(soCMND), accNo
- Thực hiện việc rút tiền và cập nhật lại số dư trong tài khoản

Nguồn bài viết: DOTNET.VN

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML