Monday, August 24, 2015

Accessing database from JSP

Nguồn: http://www.roseindia.net/jsp/Accessingdatabase-fromJSP.shtml
Introduction
In This article I am going to discuss the connectivity from MYSQL database with JSP.we take a example of Books database. This database contains a table named books_details. This table contains three fields- id, book_name& author. we starts from very beginning. First we learn how to create tables in MySQl database after that we write a html page for inserting the values in 'books_details' table in database. After submitting values a table will be showed that contains the book name and author name.

Database

The database in example consists of a single table of three columns or fields. The database name is "books" and it contains information about books names & authors.

Table:books_details
ID Book Name Author
1. Java I/O Tim Ritchey
2.
Java & XML,2 Edition
Brett McLaughlin
3. Java Swing, 2nd Edition
Dave Wood, Marc Loy,
Start MYSQL prompt and type this SQL statement & press Enter-
MYSQL>CREATE DATABASE `books` ;
This will create "books" database.
Now we create table a table "books
_details" in database "books".

MYSQL>CREATE TABLE `books_details` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`book_name` VARCHAR( 100 ) NOT NULL ,
`author` VARCHAR( 100 ) NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;

This will create a table "books_details" in database "books"
JSP Code
The following code contains html for user interface & the JSP backend-
<%@ page language="java" import="java.sql.*" %>
<%

 String driver = "org.gjt.mm.mysql.Driver";

 Class.forName(driver).newInstance();

 
 Connection con=null;

 ResultSet rst=null;

 Statement stmt=null;

 
 try{

  String url="jdbc:mysql://localhost/books?user=

&password=";

  con=DriverManager.getConnection(url);

  stmt=con.createStatement();

 }

 catch(Exception e){

  System.out.println(e.getMessage());

 }
 if(request.getParameter("action") != null){

  String bookname=request.getParameter("bookname");

  String author=request.getParameter("author");

  stmt.executeUpdate("insert into books_details(book_name,

author) values('"+bookname+"','"+author+"')");

  rst=stmt.executeQuery("select * from books_details");

  %>

  

  

  

Books List

="0"> <% int no=1; while(rst.next()){ %> <% no++; } rst.close(); stmt.close(); con.close(); %>
S.No Book Name Author</.b>
<%=no%> <%=rst.getString(" book_name")%> <%=rst.getString("author") %>
<%}else{%> Book Entry FormDocument
  

   
name="entry" onSubmit="return validate(this)">

Book Entry Form

Book Name: "text" size="50">
Author:"author" type="text" size="50">

<%}%>
Now we explain the above codes.
Declaring Variables: Java is a strongly typed language which means, that variables must be explicitly declared before use and must be declared with the correct data types. In the above example code we declare some variables for making connection. Theses variables are-
Connection con=null;
ResultSet rst=null;
Statement stmt=null;


The objects of type Connection, ResultSet and Statement are associated with the Java sql. "con" is a Connection type object variable that will hold Connection type object. "rst" is a ResultSet type object variable that will hold a result set returned by a database query. "stmt" is a object variable of Statement .Statement Class methods allow to execute any query.
Connection to database: The first task of this programmer is to load database driver. This is achieved using the single line of code :-
String driver = "org.gjt.mm.mysql.Driver";
Class.forName(driver).newInstance();
The next task is to make a connection. This is done using the single line of code :-
String url="jdbc:mysql://localhost/books?user=&password=";
con=DriverManager.getConnection(url);
When url is passed into getConnection() method of DriverManager class it returns connection object.
Executing Query or Accessing data from database:
This is done using following code :-

stmt=con.createStatement(); //create a Statement object
rst=stmt.executeQuery("select * from books_details");
stmt is the Statement type variable name and rst is the RecordSet type variable. A query is always executed on a Statement object.
A Statement object is created by calling createStatement() method on connection object con.
The two most important methods of this Statement interface are executeQuery() and executeUpdate(). The executeQuery() method executes an SQL statement that returns a single ResultSet object. The executeUpdate() method executes an insert, update, and delete SQL statement. The method returns the number of records affected by the SQL statement execution.
After creating a Statement ,a method executeQuery() or executeUpdate() is called on Statement object stmt and a SQL query string is passed in method executeQuery() or executeUpdate().
This will return a ResultSet rst related to the query string.
Reading values from a ResultSet:
while(rst.next()){

%>

<%=no%>
<%=rst.getString("book_name")%>
<%=rst.getString("author")%>


<%

}
The ResultSet represents a table-like database result set. A ResultSet object maintains a cursor pointing to its current row of data. Initially, the cursor is positioned before the first row. Therefore, to access the first row in the ResultSet, you use the next() method. This method moves the cursor to the next record and returns true if the next row is valid, and false if there are no more records in the ResultSet object.
Other important methods are getXXX() methods, where XXX is the data type returned by the method at the specified index, including String, long, and int. The indexing used is 1-based. For example, to obtain the second column of type String, you use the following code:
resultSet.getString(2);
You can also use the getXXX() methods that accept a column name instead of a column index. For instance, the following code retrieves the value of the column LastName of type String.
resultSet.getString("book_name");
The above example shows how you can use the next() method as well as the getString() method. Here you retrieve the 'book_name' and 'author' columns from a table called 'books_details'. You then iterate through the returned ResultSet and print all the book name and author name in the format " book name | author " to the web page.
Summary:
This article presents JDBC and shows how you can manipulate data in a relational database from your JSP page. To do this, you need to use the java.sql package: DriverManager, Connection, Statement, and ResultSet. Keep in mind, however, that this is only an introduction. To create a Web application, you need JDBC to use more features such as prepared statements and connection pooling.
To Download Example click here
When you click on the above link a Book Entry Form will open
Fill the book name and author fields and press Submit button. A page will open and show a table of book name and authors like...


1 comment:

Công ty dịch thuật MIDtrans said...

Nội dung bài viết thật tuyệt vời. Mình cũng muốn giới thiệu về một Công ty dịch thuật uy tín - Công ty dịch thuật miền trung - MIDtrans trụ sở chính chính tại địa chỉ 02 Hoàng Diệu, TP Đồng Hới, tỉnh Quảng Bình có Giấy phép kinh doanh số 3101023866 cấp ngày 9/12/2016 là đơn vị chuyên cung cấp dịch vụ dịch thuật, phiên dịch dành các cá nhân. Hệ thống thương hiệu và các Công ty dịch thuật con trực thuộc: công ty dịch thuật bình dương - dịch thuật miền trung tại địa 123 Lê Trọng Tấn, Dĩ An là địa chỉ chuyên cung cấp dịch vụ dịch thuật chuyên nghiệp tại Bình Dương ; dịch thuật tiếng trung tại sài gòn địa chỉ 47 Điện Biên Phủ, Phường Đakao, Quận 1 TP HCM, dịch thuật công chứng hà tĩnh : địa 101 Trần Hưng Đạo, TP Hà Tĩnh là nhà cung ứng dịch vụ dịch thuật uy tín hàng đầu tại Hà Tĩnh; Công ty dịch thuật Viettrans và dịc vụ japanese to vietnamese translation: dịch vụ dịch thuật tiếng nhật cho người nước ngoài có nhu cầu, giao diện tiếng Anh dễ sử dụng; dịch thuật tiếng anh tại sài gòn: nhà cung ứng dịch vụ dịch vụ dịch thuật phiên dịch hàng đầu tại Quận Cần Giờ, TP Hồ Chí Minh; Công ty dịch thuật Đà Nẵng MIDtrans cung cấp dịch vụ công ty dịch thuật đà nẵng midtrans : Địa chỉ 54 Đinh Tiên Hoàng, Quận Hải Châu, TP Đà Nẵng chuyên cung cấp dịch vụ dịch thuật công chứng, dịch thuật đa ngôn ngữ, đa chuyên ngành tại Đà Nẵng; Viettrans 43 Điện Biên Phủ, Quận 1 Sài Gòn: chuyên cung cấp dịch vụ dịch thuật đa chuyên ngành toàn quốc; Công ty dịch thuật Hà Nội MIDtrans chuyên cung cấp dịch vụ dịch thuật tiếng nhật tại hà nội : địa chỉ 101 Láng Hạ, Đống Đa, Hà Nội là nhà cung ứng dịch vụ biên dịch, phiên dịch chuyên nghiệp tại địa bàn Hà Nội. Ngoài ra, Chúng tôi cũng cung cấp các dịch vụ biên dịch và phiên dịch, dịch thuật công chứng chất lượng cao hơn 50 ngôn ngữ khác nhau như tiếng Anh, Nhật, Hàn, Trung, Pháp, Đức, Nga, .vv... Dịch thuật MIDtrans tự hào với đội ngũ lãnh đạo với niềm đam mê, khát khao vươn tầm cao trong lĩnh vực dịch thuật, đội ngũ nhân sự cống hiến và luôn sẵn sàng cháy hết mình. Chúng tôi phục vụ từ sự tậm tâm và cố gắng từ trái tim những người dịch giả.Tự hào là công ty cung cấp dịch thuật chuyên ngành hàng đầu với các đối tác lớn tại Việt nam trong các chuyên ngành hẹp như: Viettravel - vietnam tourist information and travel tips tại 46 Trần Cao Vân, TP Huế chuyên trang về thông tin du lịch và các tour đặc sắc tại Việt Nam, y dược (bao gồm bệnh lý), xây dựng (kiến trúc), hóa chất, thủy nhiệt điện, ngân hàng, tài chính, kế toán. Các dự án đã triển khai của Công ty dịch thuật chuyên nghiệp MIDtrans đều được Khách hàng đánh giá cao và đạt được sự tín nhiệm về chất lượng biên phiên dịch. Đó là kết quả của một hệ thống quản lý chất lượng dịch thuật chuyên nghiệp, những tâm huyết và kinh nghiệm biên phiên dịch nhiều năm của đội ngũ dịch giả của chúng tôi. Hotline: 0947688883. email: info@dichthuatmientrung.com.vn . Các bạn ghé thăm site ủng hộ nhé.

Router Packet Networking

Đây là video ngắn khá hay, mô tả đường đi của một gói tin trên Mạng Internet.