CS119 L3 JDBC
CS119 L3 JDBC
Enterprise Systems
Programming
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
Java Program
- load driver Relational
- establish connection DBMS
- 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
executeQuery()
requires a String argument (a select
statement)
returns a ResultSet object
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
get Method Example: getInt()
ResultSet rs;
rs = s.executeQuery(“SELECT * FROM ORDER”);
rs.next(); // gets the first row (use in a loop for multiple
rows)