Swing Và thủ tục

thongdoanvan

Moderator
21/1/10
247
7
16
Như bài trước, khi chúng ta tương tác với Database thì chúng ta sử dụng câu lệnh
PHP:
 PreparedStatement pst = conn.prepareStatement("Insert into Subjects Values(?,?)");
Khi đó thì chúng ta chuyền nguyên một câu truy vấn dài lên Server. Cách làm này không tối ưu. Và thực tế thì ít được dùng. Thường thì người ta sẽ gọi thủ tục, vừa nhanh. Vừa đảm bảo tính bảo mật
Bước 1: Tạo Database
PHP:
Create Database : DBSJ
Create Database DBSJ
Go
Use DBSJ
Go
Create Table Subjects
(
	SubjectID char(2) primary key,
	SubjectName nvarchar(200)
)

Insert Into Subjects
Values('01',N'The thao')

Insert Into Subjects
Values('02',N'Game')

Select * From Subjects
Bước 2:Tạo thủ tục
PHP:
Create Proc spud_InsertSubject
@SubjectID char(2),
@SubjectName nvarchar(200)
As
	Insert Into  Subjets
	values(@SubjectID ,@SubjectName )
Bước 3:Tạo Jframe
PHP:
Create JFrame : frmSubject
Trong Jframe này có 2 trường là 
-SubjectId
-SubjectName
Đồng thời có một Button là update
Bước 4:Tiến hành nhấn phải vào udate, và chọn event ActionPerformed
Tiếp đó tiến hành viết sự kiện như sau
PHP:
package app;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class frmCallStoreProcedure extends javax.swing.JFrame {

    Connection conn;
    public frmCallStoreProcedure() {
        try {
            initComponents();
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String url = "jdbc:sqlserver://localhost;databaseName=DBSJ";
            conn = DriverManager.getConnection(url, "sa", "ap123");
        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
    }

//doan này chứa sự kiện
private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {
    try {
        String subjectId = txtSubjectID.getText();
        String subjectName = txtSubjectName.getText();
        CallableStatement cst = conn.prepareCall("{call spud_InsertSubject(?,?)}");
        cst.setString(1, subjectId);
        cst.setString(2, subjectName);
        if (cst.executeUpdate() > 0) {
            JOptionPane.showMessageDialog(null, "Them thanh cong");
        }
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
}
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new  

              Runnable() {

                 public void run() {
                new frmCallStoreProcedure().setVisible(true);
            }
        });
    }
    private javax.swing.JButton btnUpdate;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JTextField txtSubjectID;
    private javax.swing.JTextField txtSubjectName;
}
Nguồn tham khảo:Thầy sơn
Chúc các bạn thành công.