Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is...

13
In the name of Allah Islamic University of Gaza Faculty of Engineering Computer Engineering Department ECOM 4113 DataBase Lab Lab # 9 JAVA-DATABASE CONNECTION Eng. Haneen El-masry 2013

Transcript of Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is...

Page 1: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

In the name of Allah

Islamic University of Gaza

Faculty of Engineering

Computer Engineering Department

ECOM 4113

DataBase Lab

Lab # 9

JAVA-DATABASE CONNECTION

Eng. Haneen El-masry

2013

Page 2: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 2

Objective

In this lab, we turn our attention to how SQL can be called from the Java object-oriented

programming language.

JDBC

Java Data Base Connectivity (JDBC) is:

An API for the Java programming language that defines how a client may access a

database.

The function libraries for SQL access from Java.

It provides methods for querying and updating data in a database.

JDBC Driver is basically an implementation of the function calls specified in the JDBC

API.

DataBase Connection from Java

1- Add JDBC Driver to the Java project.

Right click on the project Name >> properties.

Page 3: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 3

From the categories on left side, select Libraries. And on right side in Compile tab,

click Add JAR/Folder.

Browse to JDBC Driver >> Open.

Page 4: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 4

OK.

JDBC Driver is added to the project libraries.

Page 5: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 5

2- Create a new class, specially for Connection. Let it to be Connect Class.

Connect Class

Page 6: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 6

Connect Class Description

import java.sql.*: The JDBC library of classes must be imported into the Java

program. These classes are called java.sql.*, and can be imported.

Class.forName(“org.postgresql.Driver”): The method Class.forName(String) is

used to load the JDBC driver class.

Notes:

When a Driver class is loaded, it creates an instance of itself and registers it with the

DriverManager.

The Java exception “ClassNotFoundException” occurs if the driver is not loaded

successfully.

The Connection object: a Connection object is created using the getConnection

function of the DriverManager class of JDBC.

Connection con=DriverManager.getConnection(URL, UserName, Password)

Connection Parameters

1- URL

With JDBC, a database is represented by a URL (Uniform Resource Locator). With

PostgreSQL, this takes the following form:

jdbc:postgresql://host:port/database

The parameters have the following meanings:

Host: Database server IP, or Name. Defaults to localhost. To specify an IPv6

address your must enclose the host parameter with square brackets.

Port: The port number the server is listening on. Defaults to the PostgreSQL

standard port number (5432).

Database: The database name.

2- UserName: The database user on whose behalf the connection is being made. 3- Password: The database user's password.

Page 7: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 7

The Statement object: In JDBC, there is a basic statement class, Statement. The Statement object is created using the createStatement function of the Connection class of JDBC.

st= con.createStatement();

Note:

Declare Statement object as static, to be shared object between the project classes.

Create an instance of Connect class in your main method to connect to the database.

Connect connect=new Connect();

Run the file that contains the main method to ensure from your connection.

Page 8: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 8

DataBase Access

Anywhere you want to access the database, you need to do the following steps:

1- Define a String holds SQL Statement that you want to execute it.

Examples:

String S1=”select * from \”EMPLOYEE\””

String S2=”update “\EMPLOYEE\” set \”FNAME\”=\’Haneen\’ where \”FNAME\”

=\’Alicia\’”

String S3=”insert into \”EMPLOYEE\”(\”SSN\”,\”FNAME\”) values( \‘123321123\’,

\’Mona\’)”

String S4=”delete from \”EMPLOYEE\” where \”SSN\”=\’123321123\’”

2- Execute SQL Statement

If the statement is a Query (Select Statement), execute it by executeQuery

method of the statement object that takes the Query as its parameter.

ResultSet rs= Connect.st.executeQuery(S1)

executeQuery method returns an object of type ResultSet, that resembles a two-

dimensional array or a table, where the tuples are the rows and the attributes

returned are the columns.

When the query is executed, rs refers to a tuple before the first tuple in the query

result.

The rs.next() function moves to the next tuple (row) in the ResultSet object and

returns NULL if there are no more objects. This is used to control the looping.

You can refer to the attributes in the current tuple using (getString, getInteger,

getDouble, and so on) functions that depend on the type of each attribute.

Also you can either use the attribute positions (1, 2) or the actual attribute

names.

Page 9: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 9

Page 10: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 10

If the SQL statement is insert, update or delete statement, execute it by

executeUpdate method of the statement object that takes the Query as its

parameter.

int rowcount= Connect.st.executeUpdate(S2)

executeUpdate method returns an integer value indicating the number of tuples

that were affected.

Page 11: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 11

First Run

Second Run

Page 12: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 12

Exercise

Add an Authentication table to any of yours Databases, then Design a simple Java

GUI application that authenticate the user who want to access the DataBase. If he

is authenticated, let him to access the Database using various DML statements.

Authentication Table Example

FName LName Password

snow white 123456

Your work can be like the following:

Page 13: Eng. Haneen El-masrysite.iugaza.edu.ps/hmasry/files/Lab9-Java-DataBase...If the SQL statement is insert, update or delete statement, execute it by executeUpdate method of the statement

DataBase Lab

Eng. Haneen 13