Java Database Connectivity

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

description

Java Database Connectivity. 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. - PowerPoint PPT Presentation

Transcript of Java Database Connectivity

Page 1: Java  Database Connectivity

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

Java Database Connectivity

Page 2: 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: 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: 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: 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: Java  Database Connectivity

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

Java Database Connectivity

Five steps

Page 7: 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: 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: 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: 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: 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: Java  Database Connectivity

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

ResultSet Object MethodsMethods Description

getString() 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: 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: Java  Database Connectivity

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

getMetaData() methods

Methods Syntax DescriptiongetColumnCount()

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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: Java  Database Connectivity

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

Basic Database OperationsDatabase 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: 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: 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: 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: 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: 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: 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: Java  Database Connectivity

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

Q & A