Technical note playframework_documentation_working with play - java_vnAsahina Infotech
Technical note , Playframework Documentation
"Working with play - java" Translation
Tài liệu ghi chép kĩ thuật về Playframework. Do không có tài liệu về playframwork bằng tiếng Việt, nên chúng tôi đã tạo tài liệu này với mục đích để học tập.
Về nội dung nếu có gì sai sót xin hãy chỉ ra cho chúng tôi. Nếu bản dịch này có giá trị, chúng tôi sẽ đăng tải nó lên cộng đồng.
Một hệ thống với 75.000 đơn hàng/1 ngày, quản lý tới hàng triệu SKU, giao dịch chạy qua hệ thống lên tới con số nghìn tỉ với tổng cộng trên 8.000 khách hàng đang sử dụng.
Đó chính là: Sapo - Phần mềm quản lý bán hàng trên nền tảng mở, quản lý bán hàng đa kênh, sử dụng kiến trúc Microservices thay thế kiến trúc Monolithic cũ.
Qua buổi chia sẻ kéo dài trong 2h, diễn giả Khôi Nguyễn sẽ giới thiệu về mô hình kiến trúc Microservices và một số bài toán đặc thù của Sapo đã được giải quyết dựa trên mô hình này.
Diễn giả:
Nguyễn Minh Khôi (https://www.facebook.com/khoi.nguyen.84 ) -
CTO DKT Technology ( http://www.dkt.com.vn/ )
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHuy Vũ
Hướng dẫn xây dựng ứng dụng web bằng ngôn ngữ Java theo mô hình MVC
Tham khảo sourcecode vui lòng liên hệ email: pinuit11@gmail.com
Chúc các bạn học tập thật tốt!
ITLC HN 14 - Bizweb Microservices ArchitectureIT Expert Club
Trong 2.5 tiếng diễn giả Nguyễn Minh Khôi sẽ trình bày các vấn đề liên quan đến kiến trúc của Bizweb - giải pháp hosting bán hàng online với trên 10,000 website đang hoạt động:
a. Kiến trúc Bizweb cũ và các khó khăn gặp phải, giải thích lý do xây dựng lại toàn bộ hệ thống từ đầu
b. Giới thiệu kiến trúc Microservices của Bizweb
c. Các vấn đề cần giải quyết trong hệ thống mới
d. Kinh nghiệm thực tế trong việc triển khai Microservices cho Bizweb
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
Giới thiệu các phương pháp và chiến lược đối ứng tải trong Web Application Server.
- WEB Server Scaleout
- Chiến lược Caching
- Tách DB (Horizontal Sharding / Vertical Sharding)
- Linux Kernel Parameters
Technical note playframework_documentation_working with play - java_vnAsahina Infotech
Technical note , Playframework Documentation
"Working with play - java" Translation
Tài liệu ghi chép kĩ thuật về Playframework. Do không có tài liệu về playframwork bằng tiếng Việt, nên chúng tôi đã tạo tài liệu này với mục đích để học tập.
Về nội dung nếu có gì sai sót xin hãy chỉ ra cho chúng tôi. Nếu bản dịch này có giá trị, chúng tôi sẽ đăng tải nó lên cộng đồng.
Một hệ thống với 75.000 đơn hàng/1 ngày, quản lý tới hàng triệu SKU, giao dịch chạy qua hệ thống lên tới con số nghìn tỉ với tổng cộng trên 8.000 khách hàng đang sử dụng.
Đó chính là: Sapo - Phần mềm quản lý bán hàng trên nền tảng mở, quản lý bán hàng đa kênh, sử dụng kiến trúc Microservices thay thế kiến trúc Monolithic cũ.
Qua buổi chia sẻ kéo dài trong 2h, diễn giả Khôi Nguyễn sẽ giới thiệu về mô hình kiến trúc Microservices và một số bài toán đặc thù của Sapo đã được giải quyết dựa trên mô hình này.
Diễn giả:
Nguyễn Minh Khôi (https://www.facebook.com/khoi.nguyen.84 ) -
CTO DKT Technology ( http://www.dkt.com.vn/ )
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHuy Vũ
Hướng dẫn xây dựng ứng dụng web bằng ngôn ngữ Java theo mô hình MVC
Tham khảo sourcecode vui lòng liên hệ email: pinuit11@gmail.com
Chúc các bạn học tập thật tốt!
ITLC HN 14 - Bizweb Microservices ArchitectureIT Expert Club
Trong 2.5 tiếng diễn giả Nguyễn Minh Khôi sẽ trình bày các vấn đề liên quan đến kiến trúc của Bizweb - giải pháp hosting bán hàng online với trên 10,000 website đang hoạt động:
a. Kiến trúc Bizweb cũ và các khó khăn gặp phải, giải thích lý do xây dựng lại toàn bộ hệ thống từ đầu
b. Giới thiệu kiến trúc Microservices của Bizweb
c. Các vấn đề cần giải quyết trong hệ thống mới
d. Kinh nghiệm thực tế trong việc triển khai Microservices cho Bizweb
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
Giới thiệu các phương pháp và chiến lược đối ứng tải trong Web Application Server.
- WEB Server Scaleout
- Chiến lược Caching
- Tách DB (Horizontal Sharding / Vertical Sharding)
- Linux Kernel Parameters
Lịch sử phát triển Web
2. Lý do ra đời của ASP.NET MVC
2.1 Giới thiệu ASP.NET truyền thống
2.2 Nhược điểm ASP.NET truyền thống
2.3 Giới thiệu ASP.NET MVC (model-view-controller)
2.3.1 Nguồn gốc ASP.NET MVC
2.3.2 Các thành phần cấu thành ASP.NET MVC
2.3.3 Cấu trúc mặc định của một dự án ASP.NET MVC
2.4 So sánh giữa ASP.NET và ASP.NET MVC
2.5 MVC2
3. Tìm hiểu các thành phần bên trong ASP.NET MVC
3.1 Controllers và Actions
3.1.1 Controllers là gì ?
3.1.2 Controller Actions là gì ?
3.2 Views
3.2.1 Views là gì ?
3.2.2 Tạo Views như thế nào ?
3.2.2 Sử dụng Views như thế nào ?
3.3 Models
3.3.1 Models là gì ?
3.3.2 Tạo Database
1. Lập trình mạng – Chương 6 1
LẬP TRÌNH WEB VỚI CÁC CÔNG NGHỆ
PHỔ BIẾN
1.1 Giới thiệu Servlet/JSP
1.2 Lập trình web với Servlet
1.3 Lập trình web với JSP
1.4 Giới thiệu ASP
1.5 Lập trình web với ASP
2. Lập trình mạng – Chương 6 2
1.1 Giới thiệu Servlet/JSP
• Servlet là một ứng dụng (class) Java chạy trên nền web server.
• Cơ chế hoạt động theo mô hình CGI mở rộng.
• Chương trình phải được dịch ra ở dạng byte-code(.class), khai báo với
web server. Web server phải hỗ trợ Java.
• Phải extends class HttpServlet. Không có method main.
3. Lập trình mạng – Chương 6 3
1.1 Giới thiệu Servlet/JSP
• Cần có package servlet.jar để biên dịch (http://java.sun.com/products/servlet/)
• Các server hiện hỗ trợ Servlet:
• Apache Tomcat (http://jakarta.apache.org)
• Sun’s Java Web Server, free, hiện không cho download
(http://wwws.sun.com/software/jwebserver/)
• New Atlanta’s ServletExec, tích hợp ServletEngine vào các web
server(http://newatlanta.com)
• http://www.macromedia.com/software/jrun/trial/
• …
• Tham khảo các tài liệu về Servlet:
http://java.sun.com/products/servlet/docs.html
4. Lập trình mạng – Chương 6 4
1.1 Giới thiệu Servlet/JSP
• Cấu trúc đơn giản của một Servlet:
import java.io.*;
import java.servlet.*;
import java.servlet.http.*;
public class Sample extends HttpServlet{
public doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
//dùng đối tượng “request” để đọc dữ liệu từ client
//dùng đối tượng “response” để xuất dữ liệu cho client
PrintWriter out = response.getWriter();
//dùng đối tượng out để ghi (method print) dữ liệu cho client
}
}
5. Lập trình mạng – Chương 6 5
1.1 Giới thiệu Servlet/JSP
• Biên dịch như một class Java.
• File *.class dịch được phải đặt vào đúng thư mục quy định sẵn của
web server.
• Tomcat: $/webpages/WEB-INF/classes
• JWS: $/servlets
• Cấu hình cho web server đối với mỗi servlet:
• Tomcat: hiệu chỉnh file web.xml trong thư mục $/webpages/WEB-INF theo
DTD http://java.sun.com/j2ee/dtds/web-app_2_2.dtd
• JWS: Cấu hình bằng web-based tool được cung cấp.
6. Lập trình mạng – Chương 6 6
1.1 Giới thiệu Servlet/JSP
• Cơ chế hoạt động của một servlet:
• Web server nhận yêu cầu triệu gọi servlet từ client.
• Nếu servlet chạy lần đầu, web server load file servlet tương ứng, khởi tạo các thông số
bằng qua method init()
• Nếu servlet đã được khởi tạo, tạo một thread để xử lý yêu cầu.
• Gọi methods doXxx() để xử lý các request tương ứng theo giao thức HTTP.
• doGet(..) cho HTTP GET, doPost cho HTTP POST
7. Lập trình mạng – Chương 6 7
1.2 Lập trình web với Servlet
• Lấy dữ liệu từ web client gởi đến bằng servlet:
• Dùng đối tượng của class HttpServletRequest
• Các methods để lấy thông số:
• getParameter(“para-name”)
• getParameterValues(“para-name”)
String username= request.getParameter(“username”);
String[] choice = request.getParameterValues(“comments”);
• Dùng đối tượng của class HttpServletRequest để lấy các thông tin HTTP
header
8. Lập trình mạng – Chương 6 8
1.2 Lập trình web với Servlet
• Ví dụ lấy tất cả các thông số từ client
Enumeration parameter_names = request.getParameterNames();
while(parameter_names.hasMoreElements()){
String para = parameter_names.nextElement();
out.print(para + “ = ”);
String[] paraValues = getParameterValues(para);
if(paraValues.lenght()==1){
out.println(paraValues[0]);
}else{
for(int i = 0, i< paraValues.lenght(),i++){
out.print(paraValues[i]+ “-”);
}
}
}
9. Lập trình mạng – Chương 6 9
1.2 Lập trình web với Servlet
• Lấy các thông số HTTP request header: class HttpServletRequest cung
cấp các method để lấy các thông số request header.
• String getHeader(header-name): lấy nội dung của header-name
• Enumeration getHeaderNames(): lấy tất cả các header-name.
• Một số method điển hình:
• Cookie[] getCookies(): dãy Cookie từ client
• int getContentLength(): trả giá trị Content-Length
• int getContentType(): trả giá trị Content-Type
• int getRemoteUser(): giá trị username nếu có authenticate
10. Lập trình mạng – Chương 6 10
1.2 Lập trình web với Servlet
• Lấy các thông số HTTP request header:
• Lấy các giá trị của biến môi trường CGI:
• QUERY_STRING: getQueryString()
• REMOTE_ADDR: getRemoteAddr()
• REMOTE_HOST: getRemoteHost()
• REQUEST_METHOD: getMethod()
• PATH_INFO: getPathInfo()
• SCRIPT_NAME: getServletPath()
• SERVER_NAME: getServerName()
• SERVER_PORT: getServerPort()
• HTTP_XXX_YYY: getHeader(“Xxx-Yyy”)
• …
11. Lập trình mạng – Chương 6 11
1.2 Lập trình web với Servlet
• Gởi dữ liệu cho web client: dùng đối tượng của class
HttpServletResponse:
• Tạo đối tượng PrintWriter để ghi dữ liệu gởi
• PrintWriter out = response.getWriter();
• Xử lý các mã HTTP trả về với các method của class HttpServletResponse:
• void setStatus(int statusCode): gởi các mã response
• void sendError(int errorCode,String msg): gởi mã lỗi theo giao thức HTTP và message
• void sendRedirect(String URL): chuyển đến một trang URL khác
• Các mã có thể theo giao thức HTTP hoặc dùng các hằng số trong class
HttpServletResponse.
12. Lập trình mạng – Chương 6 12
1.2 Lập trình web với Servlet
• Xử lý Cookie với web browser:
• Chức năng Cookie
• Kết hợp với web browser để lưu các thông số cần thiết.
• Thông tin có thể dùng để thiết lập phiên làm việc(session) trong các ứng dụng thương
mại điện tử(e-commerce).
• Lưu trữ username, password
• Thông tin để customize web site cho user hay dùng cho cơ chế personalization
• …
13. Lập trình mạng – Chương 6 13
1.2 Lập trình web với Servlet
• Ghi thông tin Cookie lên máy client:
• Thông tin được truyền đi trong field Set-Cookie HTTP header
• Dùng method addCookie(Cookie cookie) của class HttpServletResponse.
• Các thuộc tính quan trọng trong class Cookie:
• Cookie name: setName(String name) – getName()
• Cookie value: setValue(String value) – getValue()
• Max Age: setMaxAge(int seconds) – getMaxAge()
14. Lập trình mạng – Chương 6 14
1.2 Lập trình web với Servlet
• Ví dụ:
String user=“”,pass=“”;
Cookie[] cookies = request.getCookies();
if(cookies.length==0){
user = request.getParameter(“username”);
pass = request.getParameter(“password”);
Cookie name_cookie = new Cookie(“username”,user); response.addCookie(name_cookie);
Cookie pass_cookie = new Cookie(“password”,pass); response.addCookie(pass_cookie);
}else{
for(int i=0;i<cookies.length;i++){
Cookie cookie = cookies[i];
if(cookie.getName().equals(“username”)) user=cookie.getValue();
if(cookie.getName().equals(“password”)) pass=cookie.getValue();
}
}
15. Lập trình mạng – Chương 6 15
1.2 Lập trình web với Servlet
• Lưu thông tin về phiên làm việc của user: class HttpSession.
• Có thể dùng để lưu bất kỳ đối tượng nào.
• Đối tượng của class HttpSession được trả về từ method getSession() của class
HttpServletRequest.
• Các method thường sử dụng:
• Object getValue(String name) [2.2: getAttribute]
• void putValue(String name,Object object) [2.2: putAttribute]
• void removeValue(String name) [2.2: removeAttribute]
• String[] getValueNames() [Enumeration getAttributeNames()]
• String getId()
• void setMaxInactiveInterval(int seconds)
16. Lập trình mạng – Chương 6 16
1.2 Lập trình web với Servlet
• Ví dụ lưu ShoppingCart vào session
HttpSession session = request.getSession(true);
ShoppingCart cart = (ShoppingCart)session.getValue(“ShoppingCart”);
if(cart==null){
cart = new ShoppingCart();
session.putValue(“ShoppingCart”,cart);
}
//process(cart)
17. Lập trình mạng – Chương 6 17
1.2 Lập trình web với Servlet
• Xử lý kết nối database
• Dùng JDBC (Java DataBase Connectivity) để kết nối và thao tác với database.
• Quy trình xử lý:
• Tạo JDBC driver và URL database
• Thiết lập connection đến URL database
• Tạo đối tượng statement
• Thực thi các câu lệnh SQL
• Xử lý kết quả thực thi
• Đóng kết nối đến database.
18. Lập trình mạng – Chương 6 18
1.2 Lập trình web với Servlet
• Kết nối đến database thông qua OBDC trên Windows:
• Tạo DataSourceName trong ODBC
Connection con = null; Statement stmt = null; ResultSet rs = null;
String driver = “sun.jdbc.odbc.JdbcOdbcDriver”;
String databaseURL = “jdbc:odbc:DataSourceName”;
try{
Class.forName(driver);
con = DriverManager.getConnection(databaseURL);
stmt = con.createStatement()
rs = stmt.executeQuery(“SELECT * FROM Products”);
while(rs.next()){
out.println(rs.getString[1]+”-” getInt(“quantity”));//…
}
con.close();
}cacth(SQLException se){ con.close(); }
19. Lập trình mạng – Chương 6 19
1.2 Lập trình web với Servlet
• Có thể kết nối database server bất kỳ có driver hỗ trợ.
• Kết nối đến Oracle Database Server:
driver=“oracle.jdbc.driver.OracleDriver”
databaseURL =“jdbc:oracle:thin@localhost:1521:”+dbName
con = DriverManager.getConnection(databaseURL,user,password)
• Kết nối đến Sysbase:
driver=“com.sysbase.jdbc.SysDriver”
databaseURL = “jdbc:sysbase:Tds:localhost:1521?SERVICENAME=“+dbName
con = DriverManager.getConnection(databaseURL,user,password)
20. Lập trình mạng – Chương 6 20
1.2 Lập trình web với Servlet
• Dùng Prepared Statements trong các câu lệnh thay đổi dữ liệu:
String preSQLString =
“UPDATE students SET score = ? WHERE ID=?”;
PreparedStatement pre_stmt= connection.prepareStatement(preSQLString);
float[] scores = getScores();
String[] studentIDs = getStudentIDs();
for(int i=0;i< studentIDs.length;i++){
pre_stmt.setFloat(1,scores[i]);
pre_stmt.setString(2, studentIDs[i]);
pre_stmt.execute();
}
21. Lập trình mạng – Chương 6 21
1.2 Lập trình web với Servlet
• Dùng cơ chế Connection Pooling
• Tạo một dãy các Connection sẵn sàng.
• Dùng cơ chế thread và đồng bộ để chia xẻ các Connection.
public synchronized Connection getConnection() throws SQLException{
if(!availableConnections.isEmpty()){
Connection con = availableConnections.lastElement();
availableConnections.removeElementAt(
availableConnections.size()-1);
busyConnections.addElement(con);
return con;
}else{
//…
}
}
22. Lập trình mạng – Chương 6 22
1.3 Lập trình web với JSP
• JSP (Java Server Pages) là một trang HTML xen các đoạn mã Java.
• Trang JSP sẽ được web server biên dịch theo thành bytecode, cơ chế
hoạt động tương tự như Servlet.
• Được tạo sẵn các đối tượng của các class HttpServletRequest và
HttpServletResponse để xử lý giao tiếp với web client.
23. Lập trình mạng – Chương 6 23
1.3 Lập trình web với JSP
• Các đoạn mã Java trong trang JSP được đặt trong tag: <% %>
• Giá trị biểu thức: <%= biểu thức %>
• Khai báo các biếm <%! [type variable;]+ %>
• Java code <% Java code %>
• Chú thích <%-- comments --%>
• Các khai báo chỉ thị (derective):
• <%@ page import=“[package][,package]*” %>
• <%@ page isThreadSafe=“{true|false}” %>
• <%@ page session=“{true|false}” %>
• <%@ include file=“filename” %>
24. Lập trình mạng – Chương 6 24
1.3 Lập trình web với JSP
Ví dụ trang JSP
<html>
<body bgcolor="white">
<h1> Request Information </h1>
<font size="4">
JSP Request Method: <jsp:expr> request.getMethod() </jsp:expr>
<br>
Request URI: <jsp:expr> request.getRequestURI() </jsp:expr>
<br>
Request Protocol: <jsp:expr> request.getProtocol() </jsp:expr>
<br>
Servlet path: <jsp:expr> request.getServletPath() </jsp:expr>
<br>
Path info: <jsp:expr> request.getPathInfo() </jsp:expr>
<br>
Path translated: <%= request.getPathTranslated() %>
…
25. Lập trình mạng – Chương 6 25
1.3 Lập trình web với JSP
<%@ page import=“beans.*" session="true" autoFlush="true" buffer="none" %>
<%! Const con = new Const();%>
<jsp:useBean id="check" scope="page" class="beans.CheckAdmin" />
<html> <head>
<SCRIPT language="JavaScript" src="Scripts/ImagesOver.js" type="text/javascript"></SCRIPT>
<title>Check admin account</title>
<META content="text/html; charset=x-user-defined" http-equiv=Content-Type>
<LINK href=“Images/linkref.css" rel=stylesheet> </head>
<body background="Images/StarStuds.gif">
<%
out.println(con.getHeader());
check.processRequest(request);
if(check.check()==true){
out.println("Hello administrator <b>"+check.getName()+"</b>");
}
else{ %>
<br>Invalid password.Please <a href="admin_logon.jsp">try</a> again
<%}
out.println(con.getFooter());
%>
26. Lập trình mạng – Chương 6 26
1.3 Lập trình web với JSP
• Các đối tượng được xây dựng sẵn trong một trang JSP:
• request: đối tượng class HttpServletRequest
• response: đối tượng class HttpServletResponse
• out: đối tượng class PrintWriter
• session: đối tượng class HttpSession tạo ra từ method getSession() của đối
tượng request
• application: đối tượng class ServletContext
• config: đối tượng class ServletConfig
27. Lập trình mạng – Chương 6 27
1.4 Giới thiệu ASP
• ASP là một trang HTML có chứa các mã script (VBScript hay
JavaScript). Các script này có thể:
• Lấy thông tin từ user.
• Sinh nội dung động.
• Thao tác với database.
• …
• Trang ASP được chạy trên web-server hỗ trợ (server-side)
28. Lập trình mạng – Chương 6 28
1.4 Giới thiệu ASP
• Các công cụ:
• Soạn thảo :
• Có thể dùng trình soạn thảo văn bản text bất kỳ.
• Các công cụ trực quan : Ms. Visual InterDev, Ms. FrontPage, Macromedia Dreamweaver…
• Web server:
• Win9x : Personal Web Server
• Win NT/2000 : Internet Information Services.
• Chili!Soft : http://www.ChiliSoft.com (UNIX support)
• HalcyonSoft : http://www.halcyonsoft.com
29. Lập trình mạng – Chương 6 29
1.4 Giới thiệu ASP
• Thêm script xử lý vào trang ASP:
• Đặt mã trong cặp dấu : <%...%>
• Ví dụ : <HTML><BODY>
<% REM Hello World ! ASP %>
</BODY></HTML>
• Dùng tag SCRIPT :
• <SCRIPT RUNAT=“SERVER”>….</SCRIPT>
• Ví dụ : <HTML><BODY>
<SCRIPT RUNAT=“SERVER”> REM Hello World
</SCRIPT>
</BODY></HTML>
30. Lập trình mạng – Chương 6 30
1.5 Lập trình web với ASP
• Đối tượng xử lý request sẵn có của ASP: Request.
• Lấy thông tin người dùng nhập từ Form:
• Request.Form(“field_name”)
• Request.Form(index)
• Một số field đặc biệt : checkbox, ratio, các field cùng tên…
31. Lập trình mạng – Chương 6 31
6.5 Lập trình web với ASP
•Đối tượng xử lý response sẵn có của ASP:
Response
•Các phương thức chính:
• Reponse.Write(“String”)
• Reponse.Redirect(“URL”)
32. Lập trình mạng – Chương 6 32
1.5 Lập trình web với ASP
• Đối tượng Application:
• Quản lý thông tin về ứng dụng. Có thể dùng để lưu trữ dữ liệu, đối tượng.
• Đối tượng Session:
• Quản lý thông tin về phiên làm việc(session), có thể lưu dữ liệu, đối tượng
của một session
• Đố tượng Server:
• Đặt các thuộc tính, tạo đối tượng mới…
33. Lập trình mạng – Chương 6 33
1.5 Lập trình web với ASP
• Thao tác database: có thể dùng ADO để thao tác.
• Ví dụ về đọc dữ liệu từ database
Dim objRecordset
Set objRecordset = Server.CreateObject(“ADODB.Recordset”)
objRecordset.Open “table-name”, “DSN=dsn”
Do While NOT objRecordset.EOF
Response.Write objRecordset(“field-name”)
objRecordset.MoveNext
Loop
34. Lập trình mạng – Chương 6 34
1.5 Lập trình web với ASP
• Đọc dữ liệu bằng câu lệnh SQL:
strSQL = “Select * FROM table WHERE ….”
objRecordset.Open strSQL, “DSN=dsn”
• Dùng in dữ liệu theo dạng bảng, danh sách, listbox…
• Có thể dùng cách này để hiện thực việc tìm kiếm.
35. Lập trình mạng – Chương 6 35
1.5 Lập trình web với ASP
• Thêm mới record:
Set obj-Recordset-name = Server.CreateObject(“ADODB.Recordset”)
objRecordset-name.Open “table-name”, “DSN=dsn”, _ adOpenDynamic,
adLockOptimistic
obj-Recordset-name.AddNew
obj-Recordset-name.Fields(“field-name”) = …
obj-Recordset-name.Update
‘….
obj-Recordset-name.Close
36. Lập trình mạng – Chương 6 36
1.5 Lập trình web với ASP
• Cập nhật thông tin trong record:
strSQLUpdate = “UPDATE table SET field1=…, field2=… WHERE …”
objRecordset. Excute strSQLUpdate