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ị:
• 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.
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();
}
}
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