Advanced Java Programming - PowerPoint PPT Presentation

About This Presentation
Title:

Advanced Java Programming

Description:

Advanced Java Programming and Database connection Eran Toch Methodologies in the Development of Information Systems November 2003 – PowerPoint PPT presentation

Number of Views:148
Avg rating:3.0/5.0
Slides: 26
Provided by: Eran6
Category:

less

Transcript and Presenter's Notes

Title: Advanced Java Programming


1
Tutorial Advanced Java Programming and
Database connection
  • Eran Toch
  • Methodologies in the Development of Information
    Systems
  • November 2003

2
Agenda
  • Exceptions and Error Handling
  • What is it and why do we need it?
  • The try, catch, finally procedure
  • Database Access with JDBC
  • Installations
  • Connecting and querying the database
  • Complete example
  • References

3
Exceptions - Introduction
  • Definition¬† An exception is an event that occurs
    during the execution of a program that disrupts
    the normal flow of instructions.
  • Whats wrong with using the return value for
    error handling?
  • Advantage 1 Separating Error Handling Code from
    "Regular" Code
  • Advantage 2 Propagating Errors Up the Call Stack
  • Advantage 3 Grouping Error Types and Error
    Differentiation

4
Exceptions Advantage 1
  • Separating Error Handling Code from "Regular"
    Code

errorCodeType readFile initialize errorCode
0 open the file if (theFileIsOpen)
determine the length of the file if
(gotTheFileLength) allocate that much
memory if (gotEnoughMemory)
read the file into memory if
(readFailed) errorCode -1
else errorCode
-2 . . .
readFile try open the file
determine its size allocate that much
memory read the file into memory
close the file catch (fileOpenFailed)
doSomething catch (sizeDeterminationF
ailed) doSomething catch
(memoryAllocationFailed) doSomething
catch (readFailed) doSomething
catch (fileCloseFailed) doSomething

Without Exception
With Exception
5
The try Block
  • try block
  • A try statement must be accompanied by at least
    one catch block or one finally block.

try System.out.println("Entering try
statement") out new PrintWriter(new
FileWriter("OutFile.txt")) for (int i 0 i lt
size i) out.println("Value at " i " "
victor.elementAt(i))
6
The catch Block
  • catch block handles the exception
  • Multiple catch blocks can be placed, each
    handling a different type of exception

try . . . catch (ArrayIndexOutOfBoundsExcepti
on e) System.err.println("Caught
ArrayIndexOutOfBoundsException "
e.getMessage()) catch (IOException e)
System.err.println("Caught IOException "
e.getMessage())
7
Catching Multiple Exceptions
  • Java exceptions are Throwable objects

Throwable
Exception
MyException
MySpecificException1
MySpecificException2
  • Catching MyException will catch both the
    subclasses. Catching Exception will catch all
    types of Exceptions

8
Catching Multiple Exceptions contd
  • Example The following catch block, will catch
    all types of exceptions

catch (Exception e) System.err.println("Except
ion caught " e.getMessage())
9
The finally Block
  • We can never be sure that either the try block or
    the finally block will be fully executed.
  • finally block code will always be executed
  • Used frequently for cleanup processes.

finally if (out ! null)
System.out.println("Closing PrintWriter")
out.close() else System.out.println("
PrintWriter not open")
10
Putting it All Together
public void writeList() PrintWriter out
null try System.out.println("Entering
try statement") out new PrintWriter(
new FileWriter("OutFile.txt")) for (int i
0 i lt size i) out.println("Value at "
i " " victor.elementAt(i)) catch
(ArrayIndexOutOfBoundsException e)
System.err.println("Caught ArrayIndexOutOfBoundsEx
ception " e.getMessage()) catch
(IOException e) System.err.println("Caught
IOException " e.getMessage()) finally
if (out ! null)
System.out.println("Closing PrintWriter")
out.close() else
System.out.println("PrintWriter not open")

11
throw Statement
  • All Java methods use the throw statement to throw
    an exception
  • The method must declare that it might throw
    something, by using the throws statement

public Object pop() throws EmptyStackException
Object obj if (size 0) throw new
EmptyStackException(exception text) obj
objectAt(size - 1) setObjectAt(size - 1,
null) size-- return obj
12
Exceptions and JavaDoc
  • Exception can be documented by Javadoc using the
    _at_exception statement

/ regular javadoc text
_at_throwsExceptionIf the Driver was not found.
_at_throwsSQLExceptionIf the the ltcodegtDriverManager.
getConnection lt/codegt method returned an
error. / public void createConnection()throws
SQLException, Exception
13
Agenda
  • Exceptions and Error Handling
  • What is it and why do we need it?
  • The try, catch, finally procedure
  • Database Access with JDBC
  • Installations
  • Connecting and querying the database
  • Complete example
  • References

14
Database Connection - Overview
  • Four stages
  • Install and configure the database
  • Download and configure the JDBC
  • Create a connection to the database
  • Access the database
  • In this tutorial, examples will be based on
    MySQL. The reference section include a link to
    instructions for MS Access.

15
Database Install
  • Download the MySQL database fromhttp//www.mysql
    .com/downloads/
  • Install it
  • Create a specific databasecreate database
    mytest
  • Create a user accountgrant all on mytest. to
    eran identified by 1234

16
JDBC Install
  • Download Connector/J fromhttp//www.mysql.com/do
    wnloads/api-jdbc.html
  • Unzip it
  • In order the library to be found, either
  • Copy the .jar file toJAVA_HOME/jre/lib/ext
  • Or, add a classpath to the JDBCC\gt set
    CLASSPATH\path\to\mysql-connector-java-version-
    bin.jarCLASSPATH

17
Accessing Database
  • Load the driver
  • Creating a connection object
  • Create a statement object
  • Execute an SQL query and get results using the
    ResultSet object

18
Example Database Management
mysqlgt create database mytest Query OK, 1 row
affected (0.05 sec) mysqlgt grant all on . to
eran_at_localhost identified by '1234' Query OK, 0
rows affected (0.14 sec) mysqlgtcreate table
phones (name varchar(255) not null unique key,
phone varchar(25) not null) mysqlgtdescribe
phones -------------------------------------
----------- Field Type Null Key
Default Extra ---------------------------
--------------------- name varchar(255)
PRI phone
varchar(25)
------------------------------------------
------ mysqlgt insert into phones values ('Eran
Toch', '972-4-9831894') Query OK, 1 row
affected (0.11 sec)
Creating the DB
Creating user account
Creating the phones table
Is everything alright? Lets see
Inserting some data
19
Example Connection
import java.sql. public class SQLConnect
Connection conn null Statement stmt null
ResultSet rs null public SQLConnect()
public void createConnection() try
Class.forName("com.mysql.jdbc.Driver").newInstance
() catch (Exception E)
System.out.println(E) try conn
DriverManager.getConnection("jdbcmysql//loca
lhost/mytest?usertest masterpassword1234")
catch (SQLException E)
System.out.println(E)
Importing java.sql. that contains all the
classes we need
Connection, Statement and ResultSet are defined
as class variables
Dynamically loading the specific JDBC driver. The
runtime environment must know where the library
is located!
Connecting to the database using the url
20
Example Locating Libraries
  • If the following error message occursjava.lang.C
    lassNotFoundException com.mysql.jdbc.Driverjava.
    sql.SQLException No suitable driver
  • Then the driver was not found.
  • For Eclipse, add it in the project properties
    window
  • For runtime, add it to theclasspath

Project properties window in Eclipse
21
Example Access and Query
Creating a statement
public String getPhones() String output ""
try stmt conn.createStatement() rs
stmt.executeQuery("SELECT FROM phones")
if (rs ! null) while (rs.next())
output rs.getString("phone") "\n"
catch (Exception E)
System.out.println(E.getMessage())
Creating a ResultSet, based on a SQL statement
Going through the ResultSet by using rs.next().
Remember you need to call the next method
before you start reading from the ResultSet
Reading a field from the ResultSet
22
Example Cleaning off
finally if (rs ! null) try
rs.close() catch (SQLException
sqlEx) rs null if (stmt
! null) try stmt.close()
catch (SQLException sqlEx)
stmt null return output
Cleaning off is best done in the finally clause
Cleaning off ResultSet
Cleaning off Statement, after the ResultSet
public void closeConnection() if (conn !
null) try conn.close()
catch (SQLException sqlEx) conn null

Cleaning off the connection, in a different
method (why?)
23
Example Test Client
public class Test public static void
main(String args) SQLConnect connect
new SQLConnect() connect.createConnection()
String allPhones connect.getPhones()
connect.closeConnection() System.out.println(
"phones") System.out.println(allPhones)

Output phones 972-4-9831894
24
Agenda
  • Exceptions and Error Handling
  • What is it and why do we need it?
  • The try, catch, finally procedure
  • Database Access with JDBC
  • Installations
  • Connecting and querying the database
  • Complete example
  • References

25
References
  • Exception handling in the Java tutorialhttp//ja
    va.sun.com/docs/books/tutorial/essential/exception
    s/index.html
  • JDBC Tutorialhttp//java.sun.com/docs/books/tuto
    rial/jdbc/
  • MySQL Tutorialhttp//www.mysql.com/documentation
    /mysql/bychapter/
  • MySQL JDBC Connector/J Tutorialhttp//www.mysql.
    com/documentation/connector-j/
  • Using Microsoft Access with JDBChttp//www.javaw
    orld.com/javaworld/javaqa/2000-09/03-qa-0922-acces
    s.html
Write a Comment
User Comments (0)
About PowerShow.com