Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPTMasterCode.vn
Cấu trúc điều khiển (tiếp)
Cấu trúc lựa chọn
Lệnh lựa chọn kép
Lệnh đa lựa chọn
Cấu trúc lặp
Lặp không biết trước số lần lặp
Lặp biết trước số lần lặp
Hàm
Phạm vi biến
Mảng
Xử lý sự kiện
Cấu trúc điều khiển (tiếp)
Cấu trúc lựa chọn
Lệnh lựa chọn kép
Lệnh đa lựa chọn
Cấu trúc lặp
Lặp không biết trước số lần lặp
Lặp biết trước số lần lặp
Hàm
Phạm vi biến
Mảng
Xử lý sự kiện
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
Cách tổ chức mô hình MVC
Ưu điểm của mô hình MVC trong việc phát triển
ứng dụng web
Cách tạo và gọi hàm theo phong cách mô hình
MVC
Phân biệt khi nào nên forward hoặc chuyển
hướng yêu cầu HTTP
Giới thiệu về framework CakePHP
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
Phân biệt khi nào sử dụng PDO và mở rộng
mysqli
Cách sử dụng câu lệnh dựng sẵn khi làm việc với
PDO
Cách sử dụng chế độ hiển thị lỗi
Cách sử dụng mysqli trong cả hai hướng lập
trình hướng đối tượng và hướng cấu trúc
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPTMasterCode.vn
Stored Procedure là một tập các câu lệnh T -SQL thực
hiện một nhiệm vụ cụ thể, được đặt tên và lưu trữ
trong CSDL dưới dạng đã biên dịch.
Stored procedure cung cấp một phương pháp hữu ích
cho việc thực thi lặp lại cùng một nhiệm vụ
Giúp tái sử dụng code
Khi thực thi lại một nhiệm vụ, sử dụng lời gọi Stored
Procedure thay vì viết và thực thi lại cùng một tập hợp các
câu lệnh.
Cách sử dụng các biến, cấu trúc điều khiển trong
Stored Procedure tương tự như mã kịch bản
Bài 3: Cấu trúc điều khiển, hàm và xử lý sự kiện - Giáo trình FPTMasterCode.vn
Cấu trúc điều khiển (tiếp)
Cấu trúc lựa chọn
Lệnh lựa chọn kép
Lệnh đa lựa chọn
Cấu trúc lặp
Lặp không biết trước số lần lặp
Lặp biết trước số lần lặp
Hàm
Phạm vi biến
Mảng
Xử lý sự kiện
Cấu trúc điều khiển (tiếp)
Cấu trúc lựa chọn
Lệnh lựa chọn kép
Lệnh đa lựa chọn
Cấu trúc lặp
Lặp không biết trước số lần lặp
Lặp biết trước số lần lặp
Hàm
Phạm vi biến
Mảng
Xử lý sự kiện
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
Cách tổ chức mô hình MVC
Ưu điểm của mô hình MVC trong việc phát triển
ứng dụng web
Cách tạo và gọi hàm theo phong cách mô hình
MVC
Phân biệt khi nào nên forward hoặc chuyển
hướng yêu cầu HTTP
Giới thiệu về framework CakePHP
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
Phân biệt khi nào sử dụng PDO và mở rộng
mysqli
Cách sử dụng câu lệnh dựng sẵn khi làm việc với
PDO
Cách sử dụng chế độ hiển thị lỗi
Cách sử dụng mysqli trong cả hai hướng lập
trình hướng đối tượng và hướng cấu trúc
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPTMasterCode.vn
Stored Procedure là một tập các câu lệnh T -SQL thực
hiện một nhiệm vụ cụ thể, được đặt tên và lưu trữ
trong CSDL dưới dạng đã biên dịch.
Stored procedure cung cấp một phương pháp hữu ích
cho việc thực thi lặp lại cùng một nhiệm vụ
Giúp tái sử dụng code
Khi thực thi lại một nhiệm vụ, sử dụng lời gọi Stored
Procedure thay vì viết và thực thi lại cùng một tập hợp các
câu lệnh.
Cách sử dụng các biến, cấu trúc điều khiển trong
Stored Procedure tương tự như mã kịch bản
1. ANHMATTROI
1
Lớp kết nối CSDL dùng JDBC trong java
- Code lớp kết nối
package csdl;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
/**
*
* @author ANHMATTROI
*/
public class KetNoi
{
private Connection ket_noi;
private String chuoi_ket_noi;
private Driver driver;
public KetNoi()
{
ket_noi = null;
try
{
driver = new <lớp>();
DriverManager.registerDriver(driver);
}
catch (SQLException ex)
{
ex.printStackTrace();
}
chuoi_ket_noi = "chuỗi kết nối";
}
//mở kết nối
public boolean Mo()
{
try
{
ket_noi = DriverManager.getConnection(chuoi_ket_noi);
}
catch(SQLException ex)
{
ex.printStackTrace();
return false;
}
return true;
}
2. ANHMATTROI
2
//hàm trả về một bảng dữ liệu từ câu lệnh truy vấn select .....
public ResultSet LayDL(String str)
{
ResultSet bang = null;
try
{
Statement lenh = this.ket_noi.createStatement();
bang = lenh.executeQuery(str);
}
catch(SQLException ex)
{
ex.printStackTrace();
}
return bang;
}
//cập nhật cơ sở dữ liệu như thêm - xóa - sửa: chạy các lệnh truy vấn
//update, delete, insert ..
public boolean CapNhat(String str)
{
try
{
Statement lenh = this.ket_noi.createStatement();
lenh.execute(str);
}
catch(SQLException ex)
{
ex.printStackTrace();
return false;
}
return true;
}
//đóng kết nối khi thoát ứng dụng
public void DongKetNoi()
{
if(this.ket_noi != null)
{
try
{
this.ket_noi.close();
}
catch (SQLException ex)
{
ex.printStackTrace();
}
}
}
}
- Lớp gồm có hàm khởi tạo, mở kết nối, hàm lấy dữ liệu, hàm cập nhật và hàm đóng kết nối khi thoát ứng dụng
+ Khai báo các thư viện
3. ANHMATTROI
3
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
+ Hàm khởi tạo: đăng kí trình điều khiển cho ứng dụng để kết nối tới CSDL
public KetNoi()
{
ket_noi = null;
try
{
<đăng kí driver>;
}
catch (SQLException ex)
{
ex.printStackTrace();
}
connection_string = <chuỗi kết nối tới csdl>;
}
Dùng phương thức Class.forName(“<gọi gói chứa trình điều khiển>”) hoặc dùng
Driver driver = new <gói chứ trình điều khiển>();
DriverManager.registerDriver(driver);
+ Hàm mở kết nối: để kết nối tớ csdl bạn có thể dùng các phương thức sau:
Connection ket_noi;
ket_noi = DriverManager.getConnection(String url)
ket_noi = DriverManager.getConnection(String url, Properties prop)
ket_noi = DriverManager.getConnection(String url, String user, String password)
public boolean Mo()
{
try
{
ket_noi = DriverManager.getConnection(chuoi_ket_noi);
}
catch(SQLException ex)
{
ex.printStackTrace();
return false;//lỗi kết nối
}
return true;//kết nối thành công
}
4. ANHMATTROI
4
+ Hàm lấy dữ liệu của kết quả chạy câu lệnh truy vấn sql: tham số truyền vào là một lệnh truy ván sql và yêu cầu trả lại dữ liệu sau câu lệnh truy vấn đó, câu lệnh truy vấn truyền vào là khối lênh select. Ví dụ như: select * from SinhVien và thông tin của các sinh viên được trả về ở dạng bảng
+ Hàm cập nhật: tham số truyền vào là câu lệnh truy vấn sql, thường là của khối lệnh update, delete, insert, drop, alter, … và kết quả trả về ở dạng boolean để xem câu lệnh truy vấn có được cập nhật thành công hay không. Ví dụ như: delete from SinhVien masv = ‘sv12345’
+ Hàm đóng kết nối: ngắt kết nối csdl khi thoát ứng dụng ….
- Trước khi kết nối tới CSDL bạn phải đăng kí trình điều khiển trong ứng dụng của bạn.
Trong T-SQL :
Hàm khởi tạo
Với jdk 1.6, 1.7:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
chuoi_ket_noi = "jdbc:odbc:Driver={SQL Server}; "
+ "Server=<tên server>; Database=<tên cơ sở dữ liệu>;"
+ UserName=<tên đăng nhập sql>; PassWord=<mật khẩu>";
Hoặc dùng:
driver = new sun.jdbc.odbc.JdbcOdbcDriver();
DriverManager.registerDriver(driver);
5. ANHMATTROI
5
. Với jdk 1.8: bạn tải sqljdbc_.jar, click chuột phải vào project chọn properties, click vào libraries chọn add/jar/folder rồi duyệt đến thư mục chứa file sqljdbc_.jar chọn nó và nhấn OK
6. ANHMATTROI
6
Tiếp theo: click Window -> Services, click phải chuột vào Databases trong tab services và chọn new connection
7. ANHMATTROI
7
Chọn new driver -> add duyệt tìm file sqljdbc.jar
Chọn next
8. ANHMATTROI
8
Lấy cổng kết nối T-SQL: mở sql server configuaration và chọn như hình dưới
9. ANHMATTROI
9
Tiếp theo next -> next -> finish
Sau các bước trên ta có được chuỗi kết nối
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
chuoi_ket_noi = " jdbc:sqlserver://BeBuSQLEXPRESS:1362;
databaseName=QLSV;UserName=ANHMATTROI;PassWord=anhmattroi";
10. ANHMATTROI
10
Hoặc dùng:
driver = new com.microsoft.sqlserver.jdbc.SQLServerDriver();
DriverManager.registerDriver(driver);
Hàm hoàn thiện:
public KetNoi()
{
ket_noi = null;
try
{
driver = new
com.microsoft.sqlserver.jdbc.SQLServerDriver();
DriverManager.registerDriver(driver);
}
catch (SQLException ex)
{
ex.printStackTrace();
}
chuoi_ket_noi = "jdbc:sqlserver://BeBuSQLEXPRESS:1362;
databaseName=QLSV;UserName=ANHMATTROI;
PassWord=anhmattroi";
}
Hàm mở kết nối: khi đã đăng kí trình điều khiển ta tiên hành kết nối csdl
public ResultSet LayDL(String str)
{
ResultSet bang = null;
try
{
Statement lenh = this.ket_noi.createStatement();
bang = lenh.executeQuery(str);
}
catch(SQLException ex)
11. ANHMATTROI
11
{
ex.printStackTrace();
}
return bang;
}
- Sau khi mở kết nối ta thực hiên các thao tác thêm – sửa – xóa trên csdl bằng hàm LayDL(String sql) và hàm CapNhat(String sql).
+ Duyệt dữ liệu dạng bảng trả về từ hàm LayDL(String sql) và hiện thị lên jtable
KetNoi kn = new KetNoi();
kn.Mo();
ResultSet bang = kn.LayDL("select * from SinhVien");
boolean kq = bang.next();
String[] hang;
DefaultTableModel model = (DefaultTableModel)jtable.getModel();
int i = 0;
while(kq)
{
hang = new String[5];
hang[0] = bang.getString(1);
hang[1] = bang.getString(2);
hang[2] = bang.getString(3);
hang[3] = bang.getString(4);
hang[4] = bang.getString(5);
i++;
model.addRow(hang);
kq = bang.next();
}
bang.close();
- Một số hàm thường dùng khi làm việc với đối tượng JTable trong java
JTable jtable;
//chèn cột
String[] ds_cot = new String[3] = {“Mã sinh viên”, “Tên”, “Quê quán”};
TableModel table_model = new DefaultTableModel(null, ds_cot);
jtable.setModel(table_model);
//toàn bộ số hàng hiện có
jtabe.getRowCount();
//hiện thị đường kẻ ngang dọc của bảng
jtabe.setShowGrid(true/false);
//thay đổi ô chọn trong bảng
12. ANHMATTROI
12
jtabe.changeSelection(<chỉ số hàng>, <chỉ số cột>, false, false);
//nhận model dùng để thêm hàng mới vào jtable
jtabe.getModel()
//nhận chỉ số hàng khi click chuột vào jtable
int i = jtabe.getSelectedRow();
//thêm một hàng vào jtable
DefaultTableModel model = (DefaultTableModel) jtabe.getModel();
String[] hang = new String[3];
hang[0] = “sv12345”;
hang[1] = “Sinh Viên”;
hang[2] = “Lớp tin5a”;
model.addRow(hang);
//xóa một hàng tại chỉ số i với -1 < i < jtabe.getRowCount();
DefaultTableModel model = (DefaultTableModel) jtabe.getModel();
model.removeRow(i);
//lấy giá trị của mỗi ô trong jtable
String giatri;
if(jtabe.getValueAt(<chỉ số hàng>, <chỉ số cột>) != null)
giatri = jtabe.getValueAt(<chỉ số hàng>, <chỉ số cột>)
//gán giá trị lên một ô của bảng jtable
String giatri = “hi”;
jtabe.setValueAt(giatri, <chỉ số hàng>, <chỉ số cột>);
Link tải project ví dụ về thêm sửa xóa csdl T-SQL dùng JDBC trong java: tạo mộ csdl QLSV gồm có một bảng SinhVien chứa các cột: MaSV, HoTen, NgaySinh, GioiTinh, DiaChi
http://www.mediafire.com/download/qv9d29we2bn8jfe/CSDL.rar