Thứ Hai, 14 tháng 7, 2014

Buiding Web Application Using JDBC

I. Xây dựng ứng dụng web sử dụng JDBC.

Bước 1: Nếu trên máy chúng ta chưa có thư viện "sqljdbc4.jar"  thì chúng ta phải download để có cài đặt và sử dụng. Các bạn có thể download ở đây (lưu ý là chọn ngôn ngữ trước khi download)

Bước 2: Sau khi download xong, chúng ta sẽ tiến hành giải nén và được một file là "sqljdbc4.jar". và tiến hành add vào thư viện của project như dưới.

Phải chuột vào thư mục libraries và chọn Add JAR/Folder và chọn file sqljdbc4.jar đã tải về và giải nén vừa xong.



Bước 3: Mở SQL SERVER lên và tạo ra một cơ sở dữ liệu mới như dưới đây:

CREATE DATABASE USINGJDBC
GO
USE USINGJDBC
GO
CREATE TABLE PRODUCT(
pId int identity primary key,
pName nvarchar(200),
pDescribe nvarchar(300)
)
insert into PRODUCT values('Ipad','Sieu mong')
insert into PRODUCT values('Iphone','dep tuyet voi')
insert into PRODUCT values('Ipod','nghe nhac sieu hay')



Bước 4. Tạo một project mới.

Bước 5: Ta tạo ra một class với tên DataAccess và đặt nó trong package "wpjs.db", sau đó thêm vào những dòng code dưới đây.

        String url = "jdbc:sqlserver://localhost:1433;databaseName=tên database";
        String username = "tên username trong sql server";
        String password = "password trong sql server";
        
        try {
            Connection conn = null;
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(url, username, password);
            return conn;
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(DataAccess.class.getName()).log(Level.SEVERE, null, ex);
        }


        return null;

Ok. Vậy là xong phần khởi tạo kết nối đến cơ sở dữ liệu. Tiếp theo ta sẽ tạo một lớp Product và tạo ra các thuộc tính dưới đây và sau đó insert hàm khởi tạo và setter, getter cho nó.



package jsf.entity;

public class Product {
    private int pId;
    private String pName;
    private String pDescribe;

    public Product(int pId, String pName, String pDescribe) {
        this.pId = pId;
        this.pName = pName;
        this.pDescribe = pDescribe;
    }

    public Product(String pName, String pDescribe) {
        this.pName = pName;
        this.pDescribe = pDescribe;
    }

    public int getpId() {
        return pId;
    }

    public void setpId(int pId) {
        this.pId = pId;
    }

    public String getpName() {
        return pName;
    }

    public void setpName(String pName) {
        this.pName = pName;
    }

    public String getpDescribe() {
        return pDescribe;
    }

    public void setpDescribe(String pDescribe) {
        this.pDescribe = pDescribe;
    }    
    
}

Tiếp tục ta tạo một trang jsp với một form cho phép người dùng nhập vào key word để tiến hành tìm kiếm.


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form>
            <input type="text" name="keyword" />
            <input type="submit" />
            
        </form>
    </body>
</html>


Tiếp đó ta tạo một lớp java thường và viết phương thức cho việc tìm kiếm và trả về kết quả.

private List<Product> listpro = new ArrayList<Product>();

    public static List<Product> searchProduct(String keyword) {
        try {
            Connection conn = DataAccess.getConnection();
            PreparedStatement ps = conn.prepareCall("select * from Product where pName like '" + keyword + "'");
            ResultSet res = ps.executeQuery();
            List<Product> list = new ArrayList<>();
            while (res.next()) {                
                int id = res.getInt("pId");
                String pName = res.getString("pName");
                String pDescribe = res.getString("pDescribe");
                Product p = new Product(id, pName, pDescribe);
                list.add(p);
            }
            return list;
            
        } catch (SQLException ex) {
            Logger.getLogger(ProductManagement.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

Giờ ta chỉ gọi nó ra trong trang Servlet và hiển thị nó lên thôi.




Không có nhận xét nào:

Đăng nhận xét