Top Banner
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 Java Database Connectivity
32

3.java database connectivity

Jun 29, 2015

Download

Software

web360

Dịch vụ : Thiết kế website (http://www.web360.com.vn/) - Dịch vụ thiết kế web khách sạn (http://web360.com.vn/Thiet-ke-Web-khach-san.html)
Web360 công ty thiết kế web với nhiều năm kinh nghiệm , chúng tôi cung cấp các giải pháp dành cho những khách hàng có nhu cầu xây dựng website để đẩy mạnh công việc kinh doanh, mở rộng các kênh bán hàng, tăng cường khả năng giao tiếp với khách hàng hoặc muốn khẳng định đẳng cấp hoặc thương hiệu của công ty.

Thiết kế web giá rẻ nhất đà nẵng(http://web360.com.vn/Thiet-ke-web-gia-re-da-nang.html)


DỊCH VỤ THIẾT KẾ WEB CHUYÊN NGHIỆP CỦA CHÚNG TÔI NHƯ SAU :

1. Giao diện website được thiết kế đẹp mắt, chuyên nghiệp.
2. Website được nghiên cứu kỹ các đối tượng khách hàng, phân tích nhu cầu, thói quen và hành vi của họ khi duyệt web để xây dựng các chức năng và nội dung phù hợp nhằm biến họ trở thành khách hàng thực sự của bạn.
3. Nghiên cứu rất kỹ các đối thủ cạnh tranh của bạn trên mạngi internet và sẽ tư vấn cho bạn cách để bạn vượt qua họ.
4. Các chuyên gia của chúng tôi cũng sẽ tư vấn cho bạn cách viết nội dung và sử dụng những từ khóa có giá trị nhằm thu hút và giữ chân khách hàng, đồng thời tạo thiện cảm cho các công cụ tìm kiếm.
5. Tối ưu hóa công cụ tìm kiếm chuẩn SEO google


Liên hệ với chúng tôi để được tư vấn thiết kế web tại Đà Nẵng tận tình nhất !

Thiet ke web da nang - Cong ty thiet ke web tai da nang (http://web360.com.vn/Thiet-ke-web-Da-Nang.html)

Liên hệ : 090.52.52.360 - 0905.595.360(Mr Hoàng)
Email : [email protected] ([email protected])
Website : www.web360.com.vn (http://web360.com.vn/)
Địa chỉ : 44 Ngô Chi Lan - Q.Hải Châu - TP.Đà Nẵng

Chúng tôi luôn nỗ lực đem lại cho khách hàng những sản phẩm và dịch vụ tốt nhất !

dịch vụ,thiết kế,thiết kế web,chuyên nghiệp,dịch vụ thiết kế,dịch vụ thiết kế web đà nẵng

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Java Database Connectivity

Page 2: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Review

A session is a long-term connection that utilizes the session layer of a network layer protocol.

A session exists for each connection between a user and an instance of a running application.

Session acts as a link between the server and the client events. The session helps the Web server to distinguish between different users.

JSP uses the sessions to store unique data of a particular client connected to a Web application. The different methods of session object include: getAttribute() getAttributeNames() getCreationTime() getId() getLastAccessedTime() getMaxInactiveInterval() removeAttribute() setAttribute() setMaxInactiveInterval()

Page 3: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Review – Contd…

Session tracking maintains the session information and keeps track of the multiple requests made by the client.

The session tracking feature in the servlets or JSP container maintains the state of a Web browser.

Cookies are text files that are stored on the user computer, and contain the session Id of the user sent by the Web server.

The cookie is sent back to the Web server with every subsequent request made by the user in the same session.

The information in the cookies helps the Web server to identify the user, as the value of each cookie is unique.

The session ID keeps track of requests made within the same session. The session ID is encoded in the URLs that are created by the JSP pages. URL Rewriting works with Web browsers that do not support cookies, or the

cookies that are disabled on a Web browser. The hidden field is used to store information about a session. In addition, the

hidden form field helps to carry the information from one HTML page to another.

Page 4: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Objectives

Explain Java database connectivity Describe various JDBC drivers Explain use of JDBC in JSP Describe different database operations Explain use of JDBC connectivity through

JavaBeans Describe database connection pooling

process

Page 5: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Java Database Connectivity

Provides a programming interface that is used to request a connection between the application and database

JDBC API executes SQL statements and sends the results through a single API

JDBC API executes simple SQL queries in the Java code to

retrieve data from database

Page 6: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Java Database Connectivity

Five steps

Page 7: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Loading the Driver

The driver is a Java class that translates Java statements to SQL statements

The Class.forName() method is used to load the driver

A driver class needs to be loaded to load the driver

Syntax

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

Page 8: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Connecting to Database

Connection con= DriverManager.getConnection(jdbc:odbc:Datasource, “userid”, “pwd” )

The java.sql package provides classes and interfaces that are used to interact with the database

The classes send the SQL queries to the database and process the queries

Syntax

The JDBC classes for creating a connection are: Java.sql.Driver Java.sql.DriverManager Java.sql.Connection

Page 9: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Create Statement

Sends queries and command to the database Created from the Connection object Syntax

Statement stat = con.createStatement()

Page 10: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Execute Query

Used to send SQL queries to the database Returns an object of type ResultSet ResultSet() object provides methods that are used to

access data from data source Syntax

String query = “Select * from table_name”;ResultSet resultset = stat.executeQuery(query);

Page 11: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Processing Results

next() method of the ResultSet object is used to process the results from the database

while(rs.next()){rs.getRow();result += "<tr>";for ( int i = 1; i <= columns; i++){result += "<td>" + rs.getObject(i).toString() + "</td>";}result += "</tr>";}

Traversing through records using for loop

Points the cursor to next row

Page 12: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

ResultSet Object Methods

Methods DescriptiongetString() Takes column number as an argument and returns

value from the specified column number as a string to the ResultSet object

getInt() Takes column number as an argument and returns the value from the specified column number as an integer to the ResultSet object

getFloat() Takes column number as an argument and returns the value from the specified column number as float type to the ResultSet object

getDate() Takes column number as an argument and returns the value from the specified column number as java.sql.Date to the ResultSet object

Page 13: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

ResultSet Object Methods-Cont…

Methods DescriptionfindColumn() Takes a column name as a string parameter

and returns the column index of the specified column name

wasNull() Returns true if the last column value read was SQL NULL

getMetaData() Returns the information about the columns of ResultSet object in a ResultSetMetaData class

Page 14: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

getMetaData() methods

Methods Syntax Description

getColumnCount()

int getColumnCount()

Returns the number of columns in the ResultSet object

getColumnName()

String getColumnName(int column)

Takes column number as a parameter and returns the designated column name

getColumnType()

int getColumnType(int column)

Takes column number as a parameter and returns the designated column’s SQL type from java.sql.Types. The types include Array, char, Integer, Date, and Float

Page 15: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

getMetaData() Methods-Cont…Methods Syntax Description

isReadOnly() boolean isReadOnly(int column)

Takes the column number as a parameter and returns true if the designated column is not writable

isSearchable() Boolean isSearchable(int column)

Takes column number as a parameter and returns true if the specified column can be used in where clause.

isNullable() int isNullable(int column)

Returns the nullability status of the specified column. The nullability status includes, columnNullable, columnNoNulls, and columnNullableUnknown

Page 16: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

JDBC Connectivity - Code Snippet

<html><head><title>DB Test</title></head><body><%@ page language="java" import="java.sql.* " %><%try{ out.println("loading driver...<br>");Class.forName("sun.jdbc.odbc.JdbcOdbcDriver ");out.println("connecting...<br>");Connection con=

DriverManager.getConnection(jdbc:odbc:Datasource, "userid ", "pwd ")

out.println("querying database...<br>");Statement stat = con.createStatement();String query = "Select * from table_name ";ResultSet rs = statement.executeQuery(query);

Importing Java.sql.* package

Loading the driver

Creating Connection object

Creating Statement

Executing the query

Page 17: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

JDBC Connectivity - Code Snippet Cont…

while (rs.next()){out.println(rs.getString(1)+ "<br>");}rs.close();Stat.close();c.close();}catch(Exception e){out.println("ERROR! "+e.getMessage());}%></body></html>

Processing results

Closing connections

Catch exception and display error message

Page 18: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

JDBC Drivers Translates Java statements to SQL statements Helps applications to interact with the database, using Java’s

built-in Driver Manager JDBC driver manager maintains a list of drivers created for

different databases JDBC drivers connect the Java application to the driver specified

in the Java program Provides Java applications that are DBMS independent The four types of JDBC drivers are:

JDBC ODBC Bridge driver Native API driver Network-protocol Driver Native protocol driver

Page 19: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

JDBC ODBC Bridge Driver

Type 1 driver Translates JDBC API to ODBC API Enables the Java applications to interact

with any database Provides platform dependence, as JDBC

ODBC bridge driver uses ODBC JDBC-ODBC bridge is useful when Java

driver is not available for a database

Page 20: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Native API Driver

Type 2 driver Provides access to the database through C/C++ Developed using native code libraries Native code libraries provide access to the

database, and improve the performance Java application sends a request for database

connectivity as a normal JDBC call to the Native API driver

Establishes the call, and translates the call to the particular database protocol that is forwarded to the database

Page 21: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Network Protocol Driver

Type 3 driver Communicates with the middle

layer component that provides data connectivity

Manages multiple Java applications connecting to

different databases

Page 22: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Native Protocol Driver

Type 4 driver Communicates directly with the

database using Java sockets Improves the performance as

translation is not required Converts JDBC queries into

native calls used by the particular RDBMS

Page 23: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Using JDBC in JSP

The java.sql.* package provides database access in Java

JDBC can be used in JSP by inserting JDBC query in the scriplet code

After compilation, the scriplet code that contains the query is placed in the jspService() method

Page 24: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Database Operations Accessing database requires JDBC code to perform database

operations The JDBC code includes queries for selecting, updating, inserting, or

deleting data from the database A connection object needs to be created for database access The Connection object is used to generate SQL statements, which

perform database operations

Page 25: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Basic Database Operations

Database Operations Description

Insert Adds the specified data in the database on execution of the SQL query

Update Edits the specified data in the database on execution of query

Delete Removes the specified data from the database on execution of the query

Select Retrieves the specified data from database on execution of query

Page 26: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

JDBC Connectivity through JavaBeans

JavaBeans components are reusable Java classes, and can be put together into applications

JDBC connectivity through JavaBeans is an efficient way for interacting with database

The JDBC components facilitates interaction of Java Swing components with a database

JDBC connectivity through JavaBeans provides database access by inserting the JDBC code in scriplets

Page 27: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

JDBC Connectivity through JavaBeans

<%@ page import="java.sql.* " %><jsp:useBean id="Account" class="AccountBean"><%Connection connection = null;Statement statement = null;ResultSet results = null;AccountBean Account = new AccountBean();//code for JDBC%></jsp:useBean>//html code to display the results

Import Java class

Initializing variables

Page 28: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Database Connection Pooling Connection pooling is a process that manages multiple

database connection requests Connection pooling process increases the speed of data

access, and reduces the number of database connections for an application

Connection pooling process helps in improving the performance of application

Connection pooling tasks include: Pre-allocate connections Manage available connections Allocate new connections Close connections

Page 29: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Summary The JDBC programming interface is used to request a connection with database to retrieve

data The JDBC API contains some classes and interfaces that connect an application to a database

using DBMS/RDBMS, and execute the SQL queries The Class.forName() method takes string as a parameter which is used to load the driver java.sql.DriverManager maintains a list of drivers created for databases and connects the

java application to the required driver java.sql.Connection sends a series of SQL statements to the database and processes the SQL

queries The Statement object is created from the Connection object. The Statement object sends

queries and commands to the database. The executeQuery() method is used to send the SQL queries to the database. The next() method of the ResultSet object is used to process the results from the

database. The methods in ResultSet class include: getString() getInt() getFloat() getDate()

Page 30: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Summary-Cont… findColumn() wasNull() getMetaData()

The getMetaData()returns the information regarding the columns of ResultSet object in a ResultSetMetaData class. The getMetaData() methods include:

getColumnCount() getColumnName() getColumnType() isReadOnly() isSearchable() isNullable()

JDBC drivers translate Java statements to SQL statements. The JDBC driver manager connect the Java application to the driver specified in the Java

program

Page 31: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Summary-Cont… JDBC drivers make Java applications DBMS independent. The four types of drivers are:

JDBC-ODBC bridge driver Native API driver Network protocol driver Native protocol driver

The JDBC code includes queries for selecting, updating, inserting, or deleting the required data from the database. The basic database operations are:

Insert data Update data Delete data Select data

Connection pooling is a process that handles multiple database connection requests The tasks of Connection pooling class include:

Pre-allocate connections Manage available connections Allocate new connections Close connections

Page 32: 3.java database connectivity

© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3

Q & A