0% found this document useful (0 votes)
48 views16 pages

JDBC Tutorial: MIE456 - Information Systems Infrastructure II

The document provides an overview of using JDBC (Java Database Connectivity) to connect Java applications to relational databases, including setting up the JDBC driver, writing SQL statements to query and manipulate data, processing result sets, and properly closing connections. It also discusses using transactions to group SQL statements so they all succeed or fail together as one atomic operation.

Uploaded by

szhry7777967
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views16 pages

JDBC Tutorial: MIE456 - Information Systems Infrastructure II

The document provides an overview of using JDBC (Java Database Connectivity) to connect Java applications to relational databases, including setting up the JDBC driver, writing SQL statements to query and manipulate data, processing result sets, and properly closing connections. It also discusses using transactions to group SQL statements so they all succeed or fail together as one atomic operation.

Uploaded by

szhry7777967
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 16

JDBC Tutorial

MIE456 -
Information Systems Infrastructure II

Vinod Muthusamy
November 4, 2004
Milestone 2 overview
 RMI
 ApptController interface given
 Write ApptControllerServer (implement ApptController)
 Write ApptControllerClient
 JDBC
 Write ApptRepositoryDB (extend ApptRepository)
 Must translate all calls to SQL statements

GUI Server Database


RMI JDBC
Java Database Connectivity
(JDBC)
 An interface to communicate with a relational
database
 Allows database agnostic Java code
 Treat database tables/rows/columns as Java objects
 JDBC driver
 An implementation of the JDBC interface
 Communicates with a particular database

JDBC Database
calls JDBC
JDBC
JDBC commands
Java app Database
Database
Database
driver
driver
driver
Eclipse JDBC setup
 Install driver
 Download MySQL JDBC driver from assignment
Web page
 Unzip mysql-connector-xxx.jar
 Add mysql-connector-xxx.jar to Eclipse project
 Project  Properties  Java Build Path  Libraries
 Add External JARs
JDBC steps
1. Connect to database
2. Query database (or insert/update/delete)
3. Process results
4. Close connection to database
1. Connect to database
 Load JDBC driver
 Class.forName("com.mysql.jdbc.Driver").newInstance();

 Make connection
 Connection conn = DriverManager.getConnection(url);

 URL
 Format: “jdbc:<subprotocol>:<subname>”
 jdbc:mysql://128.100.53.33/GROUPNUMBER?
user=USER&password=PASSWORD
2. Query database
a. Create statement
 Statement stmt = conn.createStatement();
 stmt object sends SQL commands to database
 Methods
 executeQuery() for SELECT statements
 executeUpdate() for INSERT, UPDATE, DELETE,
statements

b. Send SQL statements


 stmt.executeQuery(“SELECT …”);
 stmt.executeUpdate(“INSERT …”);
3. Process results
 Result of a SELECT statement (rows/columns) returned as a
ResultSet object
 ResultSet rs =
stmt.executeQuery("SELECT * FROM users");

 Step through each row in the result


 rs.next()

 Get column values in a row


 String userid = rs.getString(“userid”);
 int type = rs.getInt(“type”);

users table
userid firstname lastname password type
Bob Bob King cat 0
John John Smith pass 1
Print the users table
ResultSet rs = stmt.executeQuery("SELECT * FROM users");

while (rs.next()) {
String userid = rs.getString(1);
String firstname = rs.getString(“firstname”);
String lastname = rs.getString(“lastname”);
String password = rs.getString(4);
int type = rs.getInt(“type”);
System.out.println(userid + ” ” + firstname + ” ”
+ lastname + ” ” + password + ” ” + type);
}

users table
userid firstname lastname password type
Bob Bob King cat 0
John John Smith pass 1
Add a row to the users table
String str =
"INSERT INTO users
VALUES('Bob', 'Bob', 'King',
'cat', 0)”;

// Returns number of rows in table


int rows = stmt.executeUpdate(str);

users table
userid firstname lastname password type
Bob Bob King cat 0
4. Close connection to
database
 Close the ResultSet object
 rs.close();

 Close the Statement object


 stmt.close();

 Close the connection


 conn.close();
import java.sql.*;
public class Tester {
public static void main(String[] args) {
try {
// Load JDBC driver
Class.forName("com.mysql.jdbc.Driver").newInstance();
// Make connection
String url =
“jdbc:mysql://128.100.53.33/GRP?user=USER&password=PASS”
Connection conn = DriverManager.getConnection(url);
// Create statement
Statement stmt = conn.createStatement();
// Print the users table
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
while (rs.next()) {
...
}
// Cleanup
rs.close(); stmt.close(); conn.close();
} catch (Exception e) {
System.out.println("exception " + e);
}
}
Transactions
 Currently every executeUpdate() is “finalized”
right away
 Sometimes want to a set of updates to all fail
or all succeed
 E.g. add to Appointments and Bookings tables
 Treat both inserts as one transaction
 Transaction
 Used to group several SQL statements together
 Either all succeed or all fail
Transactions
 Commit
 Execute all statements as one unit
 “Finalize” updates
 Rollback
 Abort transaction
 All uncommited statements are discarded
 Revert database to original state
Transactions in JDBC
 Disable auto-commit for the connection
 conn.setAutoCommit(false);
 Call necessary executeUpdate() statements
 Commit or rollback
 conn.commit();
 conn.rollback();
References
 JDBC API Documentation
 http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/index.html
 Note: this is a newer JDBC API, but should be mostly
compatible

 Some slide content borrowed from


 http://
java.sun.com/docs/books/tutorial/jdbc/basics/index.html
 http://otn.oracle.co.kr/admin/seminar/data/otn-jdbc.ppt
 http://notes.corewebprogramming.com/student/JDBC.pdf

You might also like