SlideShare a Scribd company logo
JDBC
CS 124
JDBC
 Java Database Connectivity
 Database Access Interface
 provides access to a relational database (by
allowing SQL statements to be sent and executed
through a Java program)
 JDBC package: set of Java classes that facilitate
this access (java.sql.*)
 Comes with JDK (since 1.1)
JDBC Driver
Need a driver, specific to the DB product, to
mediate between JDBC and the database
 the driver is a Java class that needs to be loaded
first
Relational
DBMS
Java Program
- load driver
- establish connection
- send SQL statements
JDBC-ODBC Bridge
 Driver that interfaces with ODBC (Object
Database Connectivity--also an access
interface)
 Easiest way to access databases created by
Microsoft products
 register database as an ODBC data source
 use JDBC-ODBC bridge as the JDBC driver
(included in JDK distribution)
Key Classes in JDBC
 Connection
 need to create an instance of this class when
establishing a connection to the database
 Statement
 for issuing SQL statements
 ResultSet (interface)
 a ResultSet object represents the table returned
by an SQL select statement
Establishing a Connection
Use the getConnection() method
 under the DriverManager class
 String argument: "jdbc:driver:name”
 returns a Connection object
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
// above line loads the jdbc-odbc driver
String dbname = “jdbc:odbc:MyDB”;
Connection c = DriverManager.getConnection(dbname);
Creating a
Statement Object
Execute the createStatement() method on the
Connection object
 returns a Statement object
 afterwards, run methods on the Statement object
to execute an SQL statement
Statement s = c.createStatement();
Methods of the
Statement Class
 Methods of the Statement class require a string
parameter containing the SQL statement
 executeQuery()
 requires a String argument (a SELECT statement)
 returns a ResultSet object representing the table returned
 executeUpdate()
 requires a String argument
(an INSERT, UPDATE, or DELETE statement)
 returns an int (row count, in most cases)
The ResultSet Interface
 A ResultSet object represents the table
returned by the select statement sent
 Navigation/retrieval methods
 next(): moves to the next row (first row if called
for the first time), returns false if no rows remain
 getXXX() methods return the value of a field for
the current row
ResulSet example
ResultSet rs;
rs = s.executeQuery(“SELECT * FROM [ORDER]”);
rs.next(); // gets the first row (use in a loop for multiple rows)
// suppose the ORDER table has an integer field
// called quantity
int myvar = rs.getInt(“quantity”);
// if you knew that quantity is the 2nd field in the table
myvar = rs.getInt(2);
Need braces because
ORDER is a reserved
word in SQL
Exercise
 Create a Microsoft Access table
 insert sample rows
 Add an ODBC data source
 use the Microsoft Access driver
 associate with the created database
 Create a Java program
 use JDBC-ODBC bridge
 create a loop that lists all rows of the table
executeQuery( ) example
…
Statement s = con.createStatement();
ResultSet rs = s.executeQuery(
“SELECT * FROM STUDENT WHERE QPI > 3.0”
);
while ( rs.next() )
{
String name = rs.getString(“LastName”);
int y = rs.getInt(“Year”);
double qpi = rs.getDouble(“QPI”);
System.out.println( name + “ ” + y + “ ” + qpi);
}
executeUpdate( ) example
…
Statement s = con.createStatement();
int result;
result = s.executeUpdate(
“DELETE FROM EMPLOYEE WHERE DeptCode=‘CS’”
);
System.out.println( result + “ rows deleted.” );
The PreparedStatement class
 PreparedStatement: a Statement that
specifies parameters through Java code
 The SQL statements take different forms
when you specify different parameter values
 Useful when query is performed repeatedly
 Formatting of literal values is easier
Version 1 (Statement)
// suppose lastName is a String variable
Statement s = con.createStatement();
ResultSet rs = s.executeQuery(
“SELECT * FROM STUDENT WHERE LastName = ‘” + lastName +”’”
);
while ( rs.next() )
{
String name =
rs.getString(“LastName”) + rs.getString(“FirstName”);
int y = rs.getInt(“Year”);
double qpi = rs.getDouble(“QPI”);
System.out.println( name + “ ” + y + “ ” + qpi);
}
Query string is built manually
Version 2 (PreparedStatement)
// suppose lastName is a String variable
PreparedStatement s = con.prepareStatement(
“SELECT * FROM STUDENT WHERE LastName = ?”
);
s.setString( 1, lastName );
ResultSet rs = s.executeQuery();
while ( rs.next() )
{
String name =
rs.getString(“LastName”) + rs.getString(“FirstName”);
int y = rs.getInt(“Year”);
double qpi = rs.getDouble(“QPI”);
System.out.println( name + “ ” + y + “ ” + qpi);
}
the appropriate literal
is “inserted” in the query
Summary
 JDBC allows you to write Java programs that
manipulate a database
 A driver (often a separate product) is required
that facilitates access
 Key classes: Connection, Statement,
PreparedStatement, and ResultSet
 Other features: metadata and stored-proc
invocation

More Related Content

PPT
Executing Sql Commands
PPT
Executing Sql Commands
PDF
Java 1-contd
PDF
Lecture17
PPT
JDBC Tutorial
PPT
3 database-jdbc(1)
PPT
JDBC – Java Database Connectivity
PDF
spring-tutorial
Executing Sql Commands
Executing Sql Commands
Java 1-contd
Lecture17
JDBC Tutorial
3 database-jdbc(1)
JDBC – Java Database Connectivity
spring-tutorial

Similar to JDBC JAVA DATABASE CONNECTIVITY AND JAVA (20)

PPT
PPTX
Jdbc
PDF
Jdbc[1]
PDF
JDBC programming
PPT
jdbc_presentation.ppt
PDF
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
PPTX
Jdbc ja
PPT
JDBC for CSQL Database
PPTX
PPS
Jdbc api
DOCX
Android sq lite-chapter 22
PPTX
Java Databse Connectvity- Alex Jose
PPT
PPT
Jdbc
PPT
JDBC.ppt JDBC_FM_2012_201JDBC_FM_2012_201
PPT
JDBC_Template for database connection using Spring
PPT
30 5 Database Jdbc
PPT
JDBC Connecticity.ppt
PPT
Spsl v unit - final
PPT
Spsl vi unit final
Jdbc
Jdbc[1]
JDBC programming
jdbc_presentation.ppt
#18.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
Jdbc ja
JDBC for CSQL Database
Jdbc api
Android sq lite-chapter 22
Java Databse Connectvity- Alex Jose
Jdbc
JDBC.ppt JDBC_FM_2012_201JDBC_FM_2012_201
JDBC_Template for database connection using Spring
30 5 Database Jdbc
JDBC Connecticity.ppt
Spsl v unit - final
Spsl vi unit final
Ad

Recently uploaded (20)

PPTX
L1 - Introduction to python Backend.pptx
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
medical staffing services at VALiNTRY
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
System and Network Administraation Chapter 3
PDF
System and Network Administration Chapter 2
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Introduction to Artificial Intelligence
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPT
Introduction Database Management System for Course Database
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
L1 - Introduction to python Backend.pptx
Digital Systems & Binary Numbers (comprehensive )
medical staffing services at VALiNTRY
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
2025 Textile ERP Trends: SAP, Odoo & Oracle
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Upgrade and Innovation Strategies for SAP ERP Customers
How to Migrate SBCGlobal Email to Yahoo Easily
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PTS Company Brochure 2025 (1).pdf.......
System and Network Administraation Chapter 3
System and Network Administration Chapter 2
wealthsignaloriginal-com-DS-text-... (1).pdf
Introduction to Artificial Intelligence
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Introduction Database Management System for Course Database
Navsoft: AI-Powered Business Solutions & Custom Software Development
Wondershare Filmora 15 Crack With Activation Key [2025
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Ad

JDBC JAVA DATABASE CONNECTIVITY AND JAVA

  • 2. JDBC  Java Database Connectivity  Database Access Interface  provides access to a relational database (by allowing SQL statements to be sent and executed through a Java program)  JDBC package: set of Java classes that facilitate this access (java.sql.*)  Comes with JDK (since 1.1)
  • 3. JDBC Driver Need a driver, specific to the DB product, to mediate between JDBC and the database  the driver is a Java class that needs to be loaded first Relational DBMS Java Program - load driver - establish connection - send SQL statements
  • 4. JDBC-ODBC Bridge  Driver that interfaces with ODBC (Object Database Connectivity--also an access interface)  Easiest way to access databases created by Microsoft products  register database as an ODBC data source  use JDBC-ODBC bridge as the JDBC driver (included in JDK distribution)
  • 5. Key Classes in JDBC  Connection  need to create an instance of this class when establishing a connection to the database  Statement  for issuing SQL statements  ResultSet (interface)  a ResultSet object represents the table returned by an SQL select statement
  • 6. Establishing a Connection Use the getConnection() method  under the DriverManager class  String argument: "jdbc:driver:name”  returns a Connection object Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); // above line loads the jdbc-odbc driver String dbname = “jdbc:odbc:MyDB”; Connection c = DriverManager.getConnection(dbname);
  • 7. Creating a Statement Object Execute the createStatement() method on the Connection object  returns a Statement object  afterwards, run methods on the Statement object to execute an SQL statement Statement s = c.createStatement();
  • 8. Methods of the Statement Class  Methods of the Statement class require a string parameter containing the SQL statement  executeQuery()  requires a String argument (a SELECT statement)  returns a ResultSet object representing the table returned  executeUpdate()  requires a String argument (an INSERT, UPDATE, or DELETE statement)  returns an int (row count, in most cases)
  • 9. The ResultSet Interface  A ResultSet object represents the table returned by the select statement sent  Navigation/retrieval methods  next(): moves to the next row (first row if called for the first time), returns false if no rows remain  getXXX() methods return the value of a field for the current row
  • 10. ResulSet example ResultSet rs; rs = s.executeQuery(“SELECT * FROM [ORDER]”); rs.next(); // gets the first row (use in a loop for multiple rows) // suppose the ORDER table has an integer field // called quantity int myvar = rs.getInt(“quantity”); // if you knew that quantity is the 2nd field in the table myvar = rs.getInt(2); Need braces because ORDER is a reserved word in SQL
  • 11. Exercise  Create a Microsoft Access table  insert sample rows  Add an ODBC data source  use the Microsoft Access driver  associate with the created database  Create a Java program  use JDBC-ODBC bridge  create a loop that lists all rows of the table
  • 12. executeQuery( ) example … Statement s = con.createStatement(); ResultSet rs = s.executeQuery( “SELECT * FROM STUDENT WHERE QPI > 3.0” ); while ( rs.next() ) { String name = rs.getString(“LastName”); int y = rs.getInt(“Year”); double qpi = rs.getDouble(“QPI”); System.out.println( name + “ ” + y + “ ” + qpi); }
  • 13. executeUpdate( ) example … Statement s = con.createStatement(); int result; result = s.executeUpdate( “DELETE FROM EMPLOYEE WHERE DeptCode=‘CS’” ); System.out.println( result + “ rows deleted.” );
  • 14. The PreparedStatement class  PreparedStatement: a Statement that specifies parameters through Java code  The SQL statements take different forms when you specify different parameter values  Useful when query is performed repeatedly  Formatting of literal values is easier
  • 15. Version 1 (Statement) // suppose lastName is a String variable Statement s = con.createStatement(); ResultSet rs = s.executeQuery( “SELECT * FROM STUDENT WHERE LastName = ‘” + lastName +”’” ); while ( rs.next() ) { String name = rs.getString(“LastName”) + rs.getString(“FirstName”); int y = rs.getInt(“Year”); double qpi = rs.getDouble(“QPI”); System.out.println( name + “ ” + y + “ ” + qpi); } Query string is built manually
  • 16. Version 2 (PreparedStatement) // suppose lastName is a String variable PreparedStatement s = con.prepareStatement( “SELECT * FROM STUDENT WHERE LastName = ?” ); s.setString( 1, lastName ); ResultSet rs = s.executeQuery(); while ( rs.next() ) { String name = rs.getString(“LastName”) + rs.getString(“FirstName”); int y = rs.getInt(“Year”); double qpi = rs.getDouble(“QPI”); System.out.println( name + “ ” + y + “ ” + qpi); } the appropriate literal is “inserted” in the query
  • 17. Summary  JDBC allows you to write Java programs that manipulate a database  A driver (often a separate product) is required that facilitates access  Key classes: Connection, Statement, PreparedStatement, and ResultSet  Other features: metadata and stored-proc invocation