1. Trang chủ
  2. » Giáo án - Bài giảng

JSF – làm việc với cơ sở dữ liệu

21 548 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 644,38 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

JSF – Làm việc với CƠ SỞ DỮ LIỆU JSF – Làm việc với CƠ SỞ DỮ LIỆU Trong bài này, chúng ta làm việc với JSF kết nối cơ sở dữ liệu sử dụng JDBC thể liệt kê 1 bảng dữ liệu, thêm mẫu tin m

Trang 1

JSF – Làm việc với CƠ SỞ DỮ LIỆU

JSF – Làm việc với CƠ SỞ DỮ LIỆU

Trong bài này, chúng ta làm việc với JSF kết nối cơ sở dữ liệu sử dụng JDBC thể liệt kê 1 bảng dữ

liệu, thêm mẫu tin mới, cập nhật thông tin của dòng dữ liệu cũng như xóa 1 dòng dữ liệu Giả sử

Database được thiết kế như sau:

Sau khi hoàn tất, ta có giao diện như sau:

Khi nhấn link “Insert New” sẽ cho ta trang thêm Lớp học mới

Khi nhấn Link Edit, sẽ load thông tin của dòng được chọn và cho hiệu chỉnh

Trang 2

Khi nhấn link Delete, sẽ xóa dòng được chọn

Trong ví dụ này tôi dùng NetBeans IDE để thiết kế (Eclipse hay IDE khác cũng vậy)

Bước 1: Tạo 1 Web Application mới, chọn Framework là Java Server Faces như hình

Trang 3

Bước 2: Tạo Manage-bean

018 privateString msLop;

019 privateString tenLop;

Trang 4

020 privateString tenGVCN;

060 publicArrayList<LophocBean> getAllLophoc() {

061 ArrayList<LophocBean> lst = newArrayList<LophocBean>();

062 try{

Trang 5

3

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

06

4

Connection con =

DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databas eName=GC0563", "sa", "");

065 ResultSet rs = con.createStatement().executeQuery("select * from Lophoc");

082 * Action dùng để insert 1 mẫu tin mới

083 * @return success nếu thành công

08

8

Connection con =

DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databas eName=GC0563", "sa", "");

089 String sql = "insert into lophoc values(?,?,?)";

Trang 6

108 publicvoiddeleteAction(ActionEvent evt) {

109 // We get the table object

110 HtmlDataTable table = getParentDatatable((UIComponent) evt.getSource());

111 // We get the object on the selected line

11

6

Connection con =

DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databas eName=GC0563", "sa", "");

117 String sql = "delete lophoc where msLop=?";

130 publicvoideditBook(ActionEvent evt) {

131 // We get the table object

132 HtmlDataTable table = getParentDatatable((UIComponent) evt.getSource());

133 // We get the object on the selected line

141 // Method to get the HtmlDataTable

142 privateHtmlDataTable getParentDatatable(UIComponent compo) {

143 if(compo == null) {

144 returnnull;

Trang 7

145 }

146 if(compo instanceofHtmlDataTable) {

147 return(HtmlDataTable) compo;

15

9

Connection con =

DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databas eName=GC0563", "sa", "");

Bước 3: Thiết kế giao diện

Tạo trang liệt kê danh sách các lớp học: Lophoc.jsp

01<%@page contentType="text/html" pageEncoding="UTF-8"%>

02

03<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

04<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

Trang 9

01<%@page contentType="text/html" pageEncoding="UTF-8"%>

02<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

03<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

21 <h:outputLabelfor="ht"value="Tên lớp"/>

22 <h:inputTextid="ht"value="#{lophoc.tenLop}"/>

23

24 <h:outputLabelfor="gv"value="Tên GVCN"/>

25 <h:inputTextid="gv"value="#{lophoc.tenGVCN}"/>

Trang 10

01<%@page contentType="text/html" pageEncoding="UTF-8"%>

02<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

03<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

16 <h:form>

17 <h:panelGridcolumns="2">

18 <h:outputLabelfor="ms"value="Mã số lớp"/>

19 <h:inputTextid="ms"value="#{lophoc.msLop}"/>

20 <h:outputLabelfor="ht"value="Tên lớp"/>

21 <h:inputTextid="ht"value="#{lophoc.tenLop}"/>

22 <h:outputLabelfor="gv"value="Tên GVCN"/>

23 <h:inputTextid="gv"value="#{lophoc.tenGVCN}"/>

Trang error.jsp cho việc hiển thị lỗi

01<%@page contentType="text/html" pageEncoding="UTF-8"%>

02<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>

Trang 11

03<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

Trang 13

Bước 5: Thực thi chương trình và thưởng thức

Chúc thành công!

Like

Be the first to like this

22 Responses to “JSF – Làm việc với CƠ SỞ DỮ LIỆU”

Trang 14

2

Đỉnh said

May 31, 2011 at 4:30 am

Dear thầy!

Thầy ơi cho em hỏi, khi em load trang viewAccount.jsp,nó báo là:

„#{RegisterBean1.getAllAccount}‟ Property „getAllAccount‟ not found on type

demo.RegisterBean1 ( cai getAllAccount cua em chinh la getAllLophoc cua thầy.)

Trang 15

8

Trần Công Vương said

October 30, 2011 at 7:57 pm

Em chào thầy ạ.Thầy có thể ví dụ thêm về phần view được không ạ?Bên cạnh 2

commanlink EDIT va DELETE có thêm 1 commanlink la VIEW để khi ta click VIEW thì nó

sẽ qua form khác và trên form đó sẽ hiển thị lên tất cả thông tin của GiaoVienChuNhiem

đó được không ạ?

Mong thầy sẽ cho ví dụ sớm.Em cảm ơn thầy trước

9

Trang 17

sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25 )

… 20 more

Em chào thầy , mong này giúp em sửa lỗi này Em làm giống vd của thầy

public String checkUser(){

String sql =”SELECT * FROM users WHERE username=? AND password=?”;

return con;

}

10

Trang 18

JSF said

November 4, 2011 at 5:58 am

Em chào thầy, em đang làm JSF, để có thể làm được các ví dụ

em cần phải có những bộ thư viện nòa ạ MOng thầy cung cấp cho em

Em xin cảm ơn thầy

Trang 19

Em chào thầy , thầy có thể cho em biết em cần những gói thư viện nào để có thể làm các

vd liên quan tới các tag <a4j <rich

Em muốn làm các vd giông trong trang này

http://richfaces-showcase.appspot.com/richfaces/component-sample.jsf?demo=dataGrid&skin=blueSky

Hiện tại em đang có thư viện JSF 2.1, JSTL1.1

Mong thầy giúp đỡ

14

Võ Văn Hải said

November 10, 2011 at 1:36 pm

2 thư viện chuẩn của JSF là jsf-api-….jar và jsf-impl-…jar, cái thẻ là thẻ của richfaces, bạn

có thể tìm hiểu thêm ở bài này

15

Võ Văn Hải said

November 10, 2011 at 1:54 pm

“Em chào thầy, em đang làm JSF, để có thể làm được các ví dụ

em cần phải có những bộ thư viện nòa ạ MOng thầy cung cấp cho em

Em xin cảm ơn thầy.”

Vui lòng tìm kỹ trong blog này sẽ có cau trả lời

Trang 20

17

Khoa said

December 7, 2011 at 9:41 am

Thầy có thể chỉ cho em cách ch n 1 trang jsf vào 1 trang khác được không

Ví dụ em tạo ra 1 trang menu, sau đó em ch n trang này cho các trang khác

Trong jsp em dùng jsp:include, còn trong jsf em không biết

Mong thầy giúp đỡ Em chúc thầy mạnh khỏe

chao thay! e thac mat la khi minh nhan nut delete thi lam seo biet truyen tham so id cho

no a thay co the giai thich ro hon dc hk a mong thay giup do!

20

Ken said

May 11, 2012 at 3:34 pm

Neu mh truyen tham 1 tham so cho nhu the nay:

Thi ben Lophocbean mh lam seo de nhan tham so nay ha Thay? va lieu e viet nhu vay co dung chua?…Kinh mong thay giup dum e!

Trang 21

21

Minh Phúc said

August 8, 2012 at 4:06 am

Chào a, tôi có 2 trang Trên trang 1 tôi hiển thị dữ liệu từ bean được thiết lập là

SessionScoped, từ trang 1 chuyển qua trang 2 để thực hiện thao tác dữ liệu Nhưng sau khi thay đổi dữ liệu thành công và database đã thay đổi nhưng khi quay về trang 1 dữ liệu vẫn ko thay đổi Nếu dùng ViewScoped thì ko thể chuyển dữ liệu qua trang 2 được hoặc a

có cách nào giúp chuyển dữ liệu qua trang 2 từ trang 1 ko (trang 2 và trang 1 dùng cùng

1 bean) A có cách nào giúp tôi giải quyết được vấn đề đó ko?

22

Võ Văn Hải said

August 29, 2012 at 4:08 am

Chào a, tôi có 2 trang Trên trang 1 tôi hiển thị dữ liệu từ bean được thiết lập là

SessionScoped, từ trang 1 chuyển qua trang 2 để thực hiện thao tác dữ liệu Nhưng sau khi thay đổi dữ liệu thành công và database đã thay đổi nhưng khi quay về trang 1 dữ liệu vẫn ko thay đổi Nếu dùng ViewScoped thì ko thể chuyển dữ liệu qua trang 2 được hoặc a

có cách nào giúp chuyển dữ liệu qua trang 2 từ trang 1 ko (trang 2 và trang 1 dùng cùng

1 bean) A có cách nào giúp tôi giải quyết được vấn đề đó ko?

Anh có thể send mail cho tôi demo của anh không? nói vầy thật khó trả lời

Ngày đăng: 18/01/2016, 19:12

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w