Java jdbc

34
JAVA JDBC Prepared by Miss. Arati A. Gadgil

Transcript of Java jdbc

Page 1: Java jdbc

JAVA JDBC

Prepared by

Miss. Arati A. Gadgil

Page 2: Java jdbc

JDBC

Java JDBC is a java API to connect and execute query with the database. JDBC API uses jdbc drivers to connect with the database.

Page 3: Java jdbc

API

API (Application programming interface) is a document that contains description of all the features of a product or software. It represents classes and interfaces that software programs can follow to communicate with each other. An API can be created for applications, libraries, operating systems, etc

Page 4: Java jdbc

JDBC DriverJDBC Driver is a software component that enables java application to interact with the database. There are 4 types of JDBC drivers

1.JDBC-ODBC bridge driver2.Native-API driver (partially java driver)3.Network Protocol driver (fully java driver)4.Thin driver (fully java driver)

Page 5: Java jdbc

JDBC-ODBC bridge driver

The JDBC-ODBC bridge driver uses ODBC driver to connect to the database. The JDBC-ODBC bridge driver converts JDBC method calls into the ODBC function calls.

Page 6: Java jdbc

connect to the database

Steps1. Register the driver class2. Creating connection3. Creating statement4. Executing queries5. Closing connection

Page 7: Java jdbc

1) Register the driver class

public static void forName(String className)throws 

ClassNotFoundException

Example

Class.forName("oracle.jdbc.driver.OracleDriver");

Page 8: Java jdbc

2)Create the connection object1) public static Connection getConnection(String url)throws 

SQLException  2) public static Connection getConnection(String url,String name,String 

password) throws SQLException

Example

Connection con=DriverManager.getConnection(  "jdbc:oracle:thin:@localhost:1521:xe","system","password");

Page 9: Java jdbc

3) Create the Statement object

The createStatement() method of Connection interface is used to create statement.

The object of statement is responsible to execute queries with the database.

public Statement createStatement()throws SQLException

Example

Statement stmt=con.createStatement();

Page 10: Java jdbc

4) Execute the query

The executeQuery() method of Statement interface is used to execute queries to the database.

This method returns the object of ResultSet that can be used to get all the records of a table.

public ResultSet executeQuery(String sql)throws SQLException

Example

ResultSet rs=stmt.executeQuery("select * from emp");    while(rs.next()){  

System.out.println(rs.getInt(1)+" "+rs.getString(2));  }

Page 11: Java jdbc

5) Close the connection object

By closing connection object statement and ResultSet will be closed automatically.

The close() method of Connection interface is used to close the connection.

public void close()throws SQLException 

Example

con.close();

Page 12: Java jdbc

DatabaseMetaData Interface

DatabaseMetaData interface provides methods to get meta data of a database such as database product name, database product version, driver name, name of total number of tables, name of total number of views etc.

Page 13: Java jdbc

Methods

public String getDriverName()throws SQLExceptionit returns the name of the JDBC driver.

public String getDriverVersion()throws SQLException it returns the version number of the JDBC driver.

public String getUserName()throws SQLExceptionit returns the username of the database.

public String getDatabaseProductName()throws SQLExceptionit returns the product name of the database.

public String getDatabaseProductVersion()throws SQLExceptionit returns the product version of the database.

public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)throws SQLExceptionit returns the description of the tables of the specified catalog. The table type can be TABLE, VIEW, ALIAS, SYSTEM TABLE, SYNONYM etc.

Page 14: Java jdbc

Transaction

Transaction represents a single unit of work

Properties

Atomicity means either all successful or none.

Consistency ensures bringing the database from one consistent state to another consistent state.

Isolation ensures that transaction is isolated from other transaction.

Durability means once a transaction has been committed, it will remain so, even in the event of errors, power loss etc.

Page 15: Java jdbc
Page 16: Java jdbc

 Connection interfaceIn JDBC, Connection interface provides methods to manage transaction.

Methods

void setAutoCommit(boolean status)It is true bydefault means each transaction is committed by default.

void commit()commits the transaction.

void rollback()cancels the transaction.

Page 17: Java jdbc

What is JDBC?JDBC stands for Java Database Connectivity, which is a standard Java API for database-independent connectivity between the Java prog ramming language and a wide range of databases.

Common JDBC ComponentsDriverManager: This class manages a list of database drivers.Driver: This interface handles the communications with the database server.Connec tion: This interface with all methods for contacting a database.Statement: You use objects created from this interface to submit the SQL statements to the database.ResultSet: These objects hold data retrieved from a database after you execute an SQL query using Statement objects. It acts as an iterator to allow you to move throug h its data.SQLException: T his class handles any errors that occur in a database application.

Page 18: Java jdbc
Page 19: Java jdbc

JDBC- SQL SYNTAXStructured Query Language (SQL) is a standardized language that allows you to perform operations on a database, such as creating entries, reading content, updating content, and deleting entries.

Create Database: The CREAT E DATABASE statement is used for creating a new database. The syntax is:SQL> CREATE DATABASE DATABASE_NAME;

ExampleThe following SQL statement creates a Database named EMP:SQL> CREATE DATABASE EMP;

Drop Database:The DROP DATABASE statement is used for deleting an existing database. The syntax is:SQL> DROP DATABASE DATABASE_NAME;

Page 20: Java jdbc

Create Table:The CREAT E TABLE statement is used for creating a new table. The syntax is:SQL> CREATE TABLE table_name(column_name column_data_type,...);Example:The following SQL statement creates a table named Employees with four columns:SQL> CREATE TABLE Employees( id INT NOT NULL,age INT NOT NULL,first VARCHAR(255),last VARCHAR(255),PRIMARY KEY ( id ));

Page 21: Java jdbc

INSERT Data:

The syntax for INSERT looks similar to the following , where column1, column2, and so on represent the new data to appear in the respective columns:

SQL> INSERT INTO table_name VALUES (column1, column2, ...);

Example:The following SQL INSERT statement inserts a new row in the Employees database created earlier:

SQL> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');

Page 22: Java jdbc

SELECT Data:

The SELECT statement is used to retrieve data from a database. The syntax for SELECT is:SQL> SELECT column_name, column_name, ...

FROM table_nameWHERE conditions;

The WHERE clause can use the comparison operators such as =, !=, <, >, <=,and >=, as well as the BETWEENand LIKE operators.

ExampleThe following SQL statement selects the ag e, first and last columns from the Employees table where id column is100:SQL> SELECT first, last, ageFROM EmployeesWHERE id = 100;

Page 23: Java jdbc

The following SQL statement selects the age, first and last columns from the Employees table where first column contains ZaraSQL> SELECT first, last, age

FROM EmployeesWHERE first LIKE '%Zara%';

The following SQL statement selects the age, first and last columns from the Employees table where first column contains “a” at endSQL> SELECT first, last, age

FROM EmployeesWHERE first LIKE '%a';

The following SQL statement selects the age, first and last columns from the Employees table where first column contains a at startSQL> SELECT first, last, age

FROM EmployeesWHERE first LIKE 'a%';

Page 24: Java jdbc

UPDATE Data:

The UPDAT E statement is used to update data. The syntax for UPDATE is:SQL> UPDATE table_name

SET column_name = value, column_name = value, ...WHERE conditions;

The WHERE clause can use the comparison operators such as =, !=, <, >, <=,and >=, as well as the BETWEENand LIKE operators.

Example:T he following SQL UPDAT E statement changes the age column of the employee whose id is 100:SQL> UPDATE Employees SET age=20 WHERE id=100;

Page 25: Java jdbc

DELETE Data:

The DELETE statement is used to delete data from tables. The syntax for DELETE is:

SQL> DELETE FROM table_name WHERE conditions;

The WHERE clause can use the comparison operators such as =, !=, <, >, <=,and >=, as well as the BETWEENand LIKE operators.

Example:

T he following SQL DELET E statement delete the record of the employee whose id is 100:SQL> DELETE FROM Employees WHERE id=100;

Page 26: Java jdbc

Import JDBC Packages

import java.sql.* ; // for standard JDBC programsimport java.math.* ; // for BigDecimal and BigInteger support

Register JDBC Drivertry {

Class.forName("oracle.jdbc.driver.OracleDriver");} catch(ClassNotFoundException ex) {

System.out.println("Error: unable to load driver class!");System.exit(1);

}

Page 27: Java jdbc

Create Connection Object:

Using a database URL with a username and password:

String URL = "jdbc:oracle:thin:@amrood:1521:EMP";String USER = "username";String PASS = "password"Connection conn = DriverManager.getConnection(URL, USER, PASS);

Closing JDBC connections:conn.close();

Page 28: Java jdbc

Statement

Use for general-purpose access to your database. Useful when you areusing static SQL statements at runtime. T he Statement interface cannot accept parameters.

PreparedStatement :

Use when you plan to use the SQL statements many times. ThePreparedStatement interface accepts input parameters at runtime.

CallableStatement :

Use when you want to access database stored procedures. TheCallableStatement interface can also accept runtime input parameters.

Page 29: Java jdbc

Creating Statement Object

Before you can use a Statement object to execute a SQL statement, you need to create one using the Connectionobject's createStatement( ) method, as in the following example:

Statement stmt = null;try {

stmt = conn.createStatement( );. . .

} catch (SQLException e) {. . .} finally {

. . .}

Page 30: Java jdbc

Once you've created a Statement object, you can then use it to execute a SQL statement with one of its three execute methods.

boolean execute(String SQL) : Returns a boolean value of true if a ResultSet object can be retrieved; otherwise, it returns false. Use this method to execute SQL DDL statements or when you need to use truly dynamic SQL.

int executeUpdate(String SQL) : Returns the numbers of rows affected by the execution of the SQL statement. Use this method to execute SQL statements for which you expect to get a number of rows affected - for example, an INSERT , UPDAT E, or DELET E statement.

ResultSet executeQuery(String SQL) : Returns a ResultSet object. Use this method when you expect to get a result set, as you would with a SELECT statement.

Page 31: Java jdbc

31

Rowsets

Rowsets are the central objects that enable OLE DB components to expose and manipulate data in tabular form. A rowset object is a set of rows in which each row has columns of data.

Query processors present query results in the form of rowsets.

Page 32: Java jdbc

32

ResultSet

The SQL statements that read data from a database query, return the data in a result set. The SELECT statement is the standard way to select rows from a database and view them in a result set. The java.sql.ResultSet interface represents the result set of a database query.

A ResultSet object maintains a cursor that points to the current row in the result set. The term "result set" refers to the row and column data contained in a ResultSet object.

The ResultSet interface contains many methods for getting the data of the current row.

Page 33: Java jdbc

33

public int getInt(String columnName) throws SQLExceptionReturns the int in the current row in the column named

columnName

public int getInt(int columnIndex) throws SQLExceptionReturns the int in the current row in the specified column index. The column index starts at 1, meaning the first column of a row

is 1, the second column of a row is 2, and so on.

Similarly, there are get methods in the ResultSet interface for each of the eight Java primitive types, as well as common types such as java.lang.String, java.lang.Object, and java.net.URL

Page 34: Java jdbc

Thank You

34