Java Database -...
Transcript of Java Database -...
JavaDatabaseJava DatabaseOleh : Agus Priyanto, M.Kom
SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOMSmart, Trustworthy, And Teamwork
Outline Materi1. Koneksi Aplikasi Java ke Database
2. Studi Kasus Aplikasi Java Database
Koneksi Aplikasi Java keD bDatabase
Tahapan Akses Database dengan JDBCTahapan Akses Database dengan JDBC
DriverDriverMySQLMySQL PostgreSQLPostgreSQL OracleOracle
DriverManagerDriverManager
MySQLMySQL PostgreSQLPostgreSQL OracleOracle
ConnectionConnection
DriverManagerDriverManager
ConnectionConnectionuseruser passwordpassword hosthost databasedatabase urlurl
StatementStatementselectselect updateupdate createcreate insertinsert
ResultSetResultSet
JDBC (Java DB Connectivity)J (J y)
Java application{{ ..."SELECT ... FROM ... WHERE"
}... }
DBMS
JDBC DriversJDBC DriversJava
application JDBC-APIpp
JDBC-Driver manager
NativeProtocol driver
JDBC-Net-driver
NativeAPI-driver
JDBC-ODBCbridge
Client libraryDB-Middleware ODBCMiddleware
Client library
Running a JDBC ApplicationRunning a JDBC Application
Phase Task Relevant java sql classesPhase Task Relevant java.sql classes
Initialisation Load driverCreate connection
DriverManagerConnection
Processing Generate SQL statementsProcess result data
StatementResultSet etc.
Termination Terminate connectionRelease data structures
ConnectionStatement etc.
A Simple JDBC Applicationp J pploadDriverloadDriver import java.sql.*;
public class jdbctest {
getConnectiongetConnection
createStatementcreateStatement
public static void main(String args[]){try{Class.forName("org.postgresql.Driver");Connection con = DriverManager.getConnection
execute(SQL)execute(SQL)
Result handlingResult handling
("jdbc:postgresql://lsir-cis-pc8:5401/pcmdb", "user", "passwd");Statement stmt = con.createStatement();ResultSet rs = stmt.executeQuery
("select name, number from pcmtable where number < 2");
MoreMoreresults ?results ?
yesyes
( , p );while(rs.next())
System.out.println(rs.getString(1) + " (" + rs.getInt(2) + ")");stmt.close() con close();
closeStatmentcloseStatment
nonocon.close();
} catch(Exception e){System.err.println(e);
}}}closeConnectioncloseConnection }}
Loading of DrivergCreates an instance of the driver
Registers driver in the driver manager
Explicit loadingString l driver = "org.postgresql.Driver";String l_driver org.postgresql.Driver ;Class.forName(l_driver);
Several drivers can be loaded and registered
Implicit Driver LoadingImplicit Driver LoadingSetting system property: jdbc.driversA colon-separated list of driver classnamesp
Can be set when starting the applicationjava Djdbc drivers=org postgresql Driver applicationjava -Djdbc.drivers=org.postgresql.Driver application
Can also be set from within the Java applicationP S P ()Properties prp = System.getProperties();prp.put("jdbc.drivers"
"com.mimer.jdbc.Driver:org.postgresql.Driver");System.setProperties(prp);y p (p p);
The DriverManager class attempts to load all the classes specified in jdbc drivers when the classes specified in jdbc.drivers when the DriverManager class is initialized
Addressing DatabasegA connection is a session with one databaseD t b dd d i URL f th f Databases are addressed using a URL of the form "jdbc:<subprotocol>:<subname>"ExamplesExamples
• jdbc:postgresql:database• jdbc:postgresql://host/databasejdbc:postgresql://host/database• jdbc:postgresql://host:port/database
Defaults: host=localhost, port=5432, p
Connecting to DatabasegConnection is establishedConnection con = Connection con = DriverManager.getConnection(URL,USERID,PWD);
Connection properties (class Properties)
Close the connectioncon.close();
Simple SQL StatementspStatement object for invocationstmt = con createStatement();stmt = con.createStatement();ResultSet rset= stmt.executeQuery(
"SELECT address,script,type FROM SELECT address,script,type FROM worklist");
ResultSet object for result processing
Studi Kasus Aplikasi Database
Aplikasi Databasep
1. Aplikasi Telepon
2. Aplikasi Gurup
3 Aplikasi Bank 3. Aplikasi Bank
4. Aplikasi Penjualan Barang
AplikasiTeleponp p1. Buka browser, arahkan url ke http://localhost dan
klik link ke phpMyAdminklik link ke phpMyAdmin2. Buat database telepon3 Buat satu table bukutelepon yang berisi field dengan3. Buat satu table bukutelepon, yang berisi field dengan
id sebagai primary key (PK):id integer (auto increment)g ( )nama varchar(20)alamat varchar(50)
l h (20)telepon varchar(20)handphone varchar(20)
Autoincrement di PostgreSQL
CREATE SEQUENCE bukutelepon_id_seq;
ALTER TABLE bukuteleponALTER COLUMN id
SET DEFAULT NEXTVAL('bukutelepon_id_seq');
UPDATE b k lUPDATE bukuteleponSET id = NEXTVAL('bukutelepon_id_seq');
Cek Koneksi ke Database MySQLCek Koneksi ke Database MySQLString user="root"; String pswd =""; String host="localhost"; String db="telepon"; String url=""; g ; g p ; g ;try {
Class.forName("com.mysql.jdbc.Driver"); url="jdbc:mysql://"+ host +"/"+ db +"?user=" + user + "&password="+ pswd; url jdbc:mysql:// host / db ?user user &password pswd; Connection conn=DriverManager.getConnection(urlValue); System.out.println("koneksi sukses"); conn close(); conn.close();
} catch (SQLException e){ System.out.println("koneksi gagal " + e.toString());
} t h(Cl N tF dE ti ) { } catch(ClassNotFoundException e) { System.out.println("jdbc.Driver tidak ditemukan");
}
Cek Koneksi ke Database PostgreSQLCek Koneksi ke Database PostgreSQL
String user="root"; String pswd =""; String host="localhost"; String db="telepon"; String url=""; try {
Class.forName(“org.postgresql.Driver"); url="jdbc:postgresql://"+ host +"/"+ db +"?user=" + user + "&password="+ pswd; Connection conn=DriverManager.getConnection(urlValue); System.out.println("koneksi sukses"); y p ( )conn.close();
} catch (SQLException e){ System.out.println("koneksi gagal " + e.toString()); System.out.println( koneksi gagal e.toString());
} catch(ClassNotFoundException e) { System.out.println("jdbc.Driver tidak ditemukan");
} }
Aplikasi Guru
Aplikasi Guru1. Buat database Guru2. Buat satu table dataguru, yang berisi field dengan nip
sebagai primary key (PK). Field yang lain adalah seperti di bawah:
1 nip integer (auto increment)1. nip integer (auto increment)2. nama varchar(30)3. status varchar(20)4. institusi varchar(30)5. kota varchar(30)6. handphone varchar(20)p ( )7. jeniskelamin varchar(20)8. bidangstudi varchar(30)
3 Buat 4 class java yang melakukan query ke3. Buat 4 class java yang melakukan query kedatabase Guru:
1 GuruConnection java1. GuruConnection.java2. GuruInsert.java3 GuruRead java3. GuruRead.java4. GuruUpdate.java5 GuruDelete java5. GuruDelete.java
3. Buat 1 class MenuUtama dan 4 class java GUI l k k k d b Gyang melakukan query ke database Guru:
1. GuruInsertUI.java2 G R dUI j2. GuruReadUI.java3. GuruUpdateUI.java4 G D l t UI j4. GuruDeleteUI.java5. MenuUtama.java
TerimakasihTerimakasihTerimakasihTerimakasih