SlideShare a Scribd company logo
1 of 23
JDBC part 2
Outline
• MetaData
• Display data to jTable
• SQL Optimization
7/26/2023 JDBC 2
Meta Data
• What database product and which version is it?
• How many columns are in the result set?
• What is the name of a given column?
• What is the data type of a specific column?
• Are the column names case sensitive?
• Are the column value nullable?
7/26/2023 JDBC 3
Meta Data Example
// following code will inform the database product and version
public void dbInfo(Connection connection){
DatabaseMetaData dbMetaData = connection.getMetaData();
String productName = dbMetaData.getDatabaseProductName();
String productVers = dbMetaData.getDatabaseProductVersion();
...
...
}
7/26/2023 JDBC 4
Meta Data Example
// following code will inform column count and name
ResultSet rs = st.execute(“SELECT * FROM products”);
ResultSetMetaData rsMetaData = rs.getMetaData();
int columnCount = rsMetaData.getColumnCount();
for (int i=0; i<columnCount; i++) {
System.out.println(rsMetaData.getColumnName(i+1));
}
7/26/2023 JDBC 5
Meta Data Example
// following code will inform column type
for (int i=0; i<columnCount; i++) {
System.out.println(rsMetaData.getColumnType(i+1));
}
7/26/2023 JDBC 6
Meta Data Example
// following code will inform whether column is case sensitive
// and nullable, and designated column's normal maximum width
// in characters
for (int i=0; i<columnCount; i++) {
System.out.println(rsMetaData.isCaseSensitive(i+1));
System.out.println(rsMetaData.isNullable(i+1));
System.out.println(rsMetaData.getColumnDisplaySize(i+1));
}
7/26/2023 JDBC 7
Display Data to jTable
Pada netbeans, jTable terletak pada kelompok SwingControl pada tab Palette
7/26/2023 JDBC 8
Display Data to jTable
By default, jTable will display 4 column like screenshot below
7/26/2023 JDBC 9
Display Data to jTable
Click on jTable then you will see jTable properties on right bottom on netbeans. Click
on model to edit the display column
7/26/2023 JDBC 10
Display Data to jTable
Here you can edit display table on jTable
7/26/2023 JDBC 11
Display Data to jTable
Kekurangan: Jika pada suatu saat nanti ada perubahan nama kolom, maka harus
meng-edit kembali. Solutions: gunakan ResultSetMetaData
7/26/2023 JDBC 12
SQL Join and Optimization
4 kind of JOIN
- Inner join
- Left Join
- Right Join
- Full Outer Join (not available at MySQL)
7/26/2023 JDBC 13
Example
7/26/2023 JDBC 14
Employee_I
D
Name Dept_id
E-1 James Gosling D-1
E-2 Dennis M
Ritchie
(null)
E-3 Richard
Anderson
D-2
E-4 Bjarne
Stroustrup
D-3
Dept_id Name
D-1 Human Resources
D-2 Sales
D-3 Data Center
D-4 Network Managed Services
Inner Join
7/26/2023 JDBC 15
SELECT employee_id, e.name, d.name FROM employee e
INNER JOIN department d ON e.dept_id = d.dept_id
Employee ID Name Name
E-1 James Gosling Human Resources
E-3 Richard Anderson Sales
E-4 Bjarne Stroustrup Data Center
Left Join
7/26/2023 JDBC 16
SELECT * FROM employee e LEFT JOIN department d ON
e.dept_id = d.dept_id
Employee
_ID
Name Dept_id Dept_id Name
E-1 James
Gosling
D-1 D-1 Human Resources
E-2 Dennis M
Ritchie
(null) (null) (null)
E-3 Richard
Anderson
D-2 D-2 Sales
E-4 Bjarne
Stroustrup
D-3 D-3 Data Center
Right Join
7/26/2023 JDBC 17
SELECT * FROM employee e RIGHT JOIN department d
ON e.dept_id = d.dept_id
Employee ID Name Dept ID Dept ID Dept Name
E-1 James Gosling D-1 D-1 Human Resources
E-3 Richard Anderson D-2 D-2 Sales
E-4 Bjarne Stroustrup D-3 D-3 Data Center
(null) (null) (null) D-4 Network Managed Services
Full Outer Join
7/26/2023 JDBC 18
SELECT * FROM employee e FULL OUTER JOIN
department d ON e.dept_id = d.dept_id
Employee ID Name Dept ID Dept ID Dept Name
E-1 James Gosling D-1 D-1 Human Resources
E-2 Dennis M Ritchie (null) (null) (null)
E-3 Richard Anderson D-2 D-2 Sales
E-4 Bjarne Stroustrup D-3 D-3 Data Center
(null) (null) (null) D-4 Network Managed Services
HOW to Full Outer Join in
MySQL
7/26/2023 JDBC 19
SELECT employee_id, e.name, d.name FROM employee e
LEFT JOIN department d ON e.dept_id = d.dept_id
UNION
SELECT employee_id, e.name, d.name FROM employee e
RIGHT JOIN department d ON e.dept_id = d.dept_id
Query Execution Plan
7/26/2023 JDBC 20
SELECT * FROM employee e LEFT JOIN department d ON
e.dept_id = d.dept_id
Employee ID Name Dept ID Dept ID Dept Name
E-1 James Gosling D-1 D-1 Human Resources
E-1 James Gosling D-1 D-2 Sales
E-1 James Gosling D-1 D-3 Data Center
E-1 James Gosling D-1 D-4 Network Managed Services
…
…
E-4 Bjarne Stroustrup D-3 D-3 Data Center
E-4 Bjarne Stroustrup D-3 D-4 Network Managed Services
Query Execution Plan
7/26/2023 JDBC 21
SELECT * FROM employee e LEFT JOIN department d ON
e.dept_id = d.dept_id
Employee
_ID
Name Dept_id Dept_id Name
E-1 James
Gosling
D-1 D-1 Human Resources
E-2 Dennis M
Ritchie
(null) (null) (null)
E-3 Richard
Anderson
D-2 D-2 Sales
E-4 Bjarne
Stroustrup
D-3 D-3 Data Center
Query Optimization
7/26/2023 JDBC 22
- Query akan men-join table terlebih dahulu sebelum
melakukan pengecekan pada WHERE condition
- Performa query akan lebih optimal bila jumlah record
pada table tersebut dapat direduksi terlebih dahulu
Thank you
Bayu Rimba Pratama, ST, M.Kom
bayuforest@gmail.com

More Related Content

Similar to Slide Latihan JDBC bagian 2

Database Connectivity with JDBC
Database Connectivity with JDBCDatabase Connectivity with JDBC
Database Connectivity with JDBCDudy Ali
 
Ch3_Rel_Model-95.ppt
Ch3_Rel_Model-95.pptCh3_Rel_Model-95.ppt
Ch3_Rel_Model-95.pptAtharvaBagul2
 
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdfDBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdfAbhishekKumarPandit5
 
Module 02 teradata basics
Module 02 teradata basicsModule 02 teradata basics
Module 02 teradata basicsMd. Noor Alam
 
Odtug2011 adf developers make the database work for you
Odtug2011 adf developers make the database work for youOdtug2011 adf developers make the database work for you
Odtug2011 adf developers make the database work for youLuc Bors
 
About decision tree induction which helps in learning
About decision tree induction  which helps in learningAbout decision tree induction  which helps in learning
About decision tree induction which helps in learningGReshma10
 
fINAL Lesson_5_Data_Manipulation_using_R_v1.pptx
fINAL Lesson_5_Data_Manipulation_using_R_v1.pptxfINAL Lesson_5_Data_Manipulation_using_R_v1.pptx
fINAL Lesson_5_Data_Manipulation_using_R_v1.pptxdataKarthik
 
SQL DDL: tricks and tips (JProf#27, Minsk, 24th September)
SQL DDL: tricks and tips (JProf#27, Minsk, 24th September)SQL DDL: tricks and tips (JProf#27, Minsk, 24th September)
SQL DDL: tricks and tips (JProf#27, Minsk, 24th September)Mikalai Sitsko
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQLDHAAROUN
 

Similar to Slide Latihan JDBC bagian 2 (20)

unit 1.pptx
unit 1.pptxunit 1.pptx
unit 1.pptx
 
Database Connectivity with JDBC
Database Connectivity with JDBCDatabase Connectivity with JDBC
Database Connectivity with JDBC
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
Ch3_Rel_Model-95.ppt
Ch3_Rel_Model-95.pptCh3_Rel_Model-95.ppt
Ch3_Rel_Model-95.ppt
 
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdfDBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
DBMS LAB FILE1 task 1 , task 2, task3 and many more.pdf
 
Module 02 teradata basics
Module 02 teradata basicsModule 02 teradata basics
Module 02 teradata basics
 
unit 1.pptx
unit 1.pptxunit 1.pptx
unit 1.pptx
 
DataBase Management System Lab File
DataBase Management System Lab FileDataBase Management System Lab File
DataBase Management System Lab File
 
JDBC
JDBCJDBC
JDBC
 
Odtug2011 adf developers make the database work for you
Odtug2011 adf developers make the database work for youOdtug2011 adf developers make the database work for you
Odtug2011 adf developers make the database work for you
 
Jdbc
JdbcJdbc
Jdbc
 
PPT
PPTPPT
PPT
 
About decision tree induction which helps in learning
About decision tree induction  which helps in learningAbout decision tree induction  which helps in learning
About decision tree induction which helps in learning
 
Rdbms (2)
Rdbms (2)Rdbms (2)
Rdbms (2)
 
fINAL Lesson_5_Data_Manipulation_using_R_v1.pptx
fINAL Lesson_5_Data_Manipulation_using_R_v1.pptxfINAL Lesson_5_Data_Manipulation_using_R_v1.pptx
fINAL Lesson_5_Data_Manipulation_using_R_v1.pptx
 
SQL DDL: tricks and tips (JProf#27, Minsk, 24th September)
SQL DDL: tricks and tips (JProf#27, Minsk, 24th September)SQL DDL: tricks and tips (JProf#27, Minsk, 24th September)
SQL DDL: tricks and tips (JProf#27, Minsk, 24th September)
 
Jdbc 1
Jdbc 1Jdbc 1
Jdbc 1
 
03-JDBC.pptx
03-JDBC.pptx03-JDBC.pptx
03-JDBC.pptx
 
ch3.ppt
ch3.pptch3.ppt
ch3.ppt
 
Introduction to SQL
Introduction to SQLIntroduction to SQL
Introduction to SQL
 

More from Bayu Rimba

Slide Presentasi Dasar-dasar Flowchart
Slide Presentasi Dasar-dasar FlowchartSlide Presentasi Dasar-dasar Flowchart
Slide Presentasi Dasar-dasar FlowchartBayu Rimba
 
Slide Tugas Algoritma dan Pemrograman
Slide Tugas Algoritma dan PemrogramanSlide Tugas Algoritma dan Pemrograman
Slide Tugas Algoritma dan PemrogramanBayu Rimba
 
Slide Presentasi Teknik OO pada Desain Software
Slide Presentasi Teknik OO pada Desain SoftwareSlide Presentasi Teknik OO pada Desain Software
Slide Presentasi Teknik OO pada Desain SoftwareBayu Rimba
 
Slide Dasar Materi Java Collection Framework
Slide Dasar Materi Java Collection FrameworkSlide Dasar Materi Java Collection Framework
Slide Dasar Materi Java Collection FrameworkBayu Rimba
 
Slide Latihan JDBC
Slide Latihan JDBCSlide Latihan JDBC
Slide Latihan JDBCBayu Rimba
 
Presentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWINGPresentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWINGBayu Rimba
 

More from Bayu Rimba (6)

Slide Presentasi Dasar-dasar Flowchart
Slide Presentasi Dasar-dasar FlowchartSlide Presentasi Dasar-dasar Flowchart
Slide Presentasi Dasar-dasar Flowchart
 
Slide Tugas Algoritma dan Pemrograman
Slide Tugas Algoritma dan PemrogramanSlide Tugas Algoritma dan Pemrograman
Slide Tugas Algoritma dan Pemrograman
 
Slide Presentasi Teknik OO pada Desain Software
Slide Presentasi Teknik OO pada Desain SoftwareSlide Presentasi Teknik OO pada Desain Software
Slide Presentasi Teknik OO pada Desain Software
 
Slide Dasar Materi Java Collection Framework
Slide Dasar Materi Java Collection FrameworkSlide Dasar Materi Java Collection Framework
Slide Dasar Materi Java Collection Framework
 
Slide Latihan JDBC
Slide Latihan JDBCSlide Latihan JDBC
Slide Latihan JDBC
 
Presentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWINGPresentasi latihan pemrograman Java GUI menggunakan SWING
Presentasi latihan pemrograman Java GUI menggunakan SWING
 

Recently uploaded

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Slide Latihan JDBC bagian 2

  • 2. Outline • MetaData • Display data to jTable • SQL Optimization 7/26/2023 JDBC 2
  • 3. Meta Data • What database product and which version is it? • How many columns are in the result set? • What is the name of a given column? • What is the data type of a specific column? • Are the column names case sensitive? • Are the column value nullable? 7/26/2023 JDBC 3
  • 4. Meta Data Example // following code will inform the database product and version public void dbInfo(Connection connection){ DatabaseMetaData dbMetaData = connection.getMetaData(); String productName = dbMetaData.getDatabaseProductName(); String productVers = dbMetaData.getDatabaseProductVersion(); ... ... } 7/26/2023 JDBC 4
  • 5. Meta Data Example // following code will inform column count and name ResultSet rs = st.execute(“SELECT * FROM products”); ResultSetMetaData rsMetaData = rs.getMetaData(); int columnCount = rsMetaData.getColumnCount(); for (int i=0; i<columnCount; i++) { System.out.println(rsMetaData.getColumnName(i+1)); } 7/26/2023 JDBC 5
  • 6. Meta Data Example // following code will inform column type for (int i=0; i<columnCount; i++) { System.out.println(rsMetaData.getColumnType(i+1)); } 7/26/2023 JDBC 6
  • 7. Meta Data Example // following code will inform whether column is case sensitive // and nullable, and designated column's normal maximum width // in characters for (int i=0; i<columnCount; i++) { System.out.println(rsMetaData.isCaseSensitive(i+1)); System.out.println(rsMetaData.isNullable(i+1)); System.out.println(rsMetaData.getColumnDisplaySize(i+1)); } 7/26/2023 JDBC 7
  • 8. Display Data to jTable Pada netbeans, jTable terletak pada kelompok SwingControl pada tab Palette 7/26/2023 JDBC 8
  • 9. Display Data to jTable By default, jTable will display 4 column like screenshot below 7/26/2023 JDBC 9
  • 10. Display Data to jTable Click on jTable then you will see jTable properties on right bottom on netbeans. Click on model to edit the display column 7/26/2023 JDBC 10
  • 11. Display Data to jTable Here you can edit display table on jTable 7/26/2023 JDBC 11
  • 12. Display Data to jTable Kekurangan: Jika pada suatu saat nanti ada perubahan nama kolom, maka harus meng-edit kembali. Solutions: gunakan ResultSetMetaData 7/26/2023 JDBC 12
  • 13. SQL Join and Optimization 4 kind of JOIN - Inner join - Left Join - Right Join - Full Outer Join (not available at MySQL) 7/26/2023 JDBC 13
  • 14. Example 7/26/2023 JDBC 14 Employee_I D Name Dept_id E-1 James Gosling D-1 E-2 Dennis M Ritchie (null) E-3 Richard Anderson D-2 E-4 Bjarne Stroustrup D-3 Dept_id Name D-1 Human Resources D-2 Sales D-3 Data Center D-4 Network Managed Services
  • 15. Inner Join 7/26/2023 JDBC 15 SELECT employee_id, e.name, d.name FROM employee e INNER JOIN department d ON e.dept_id = d.dept_id Employee ID Name Name E-1 James Gosling Human Resources E-3 Richard Anderson Sales E-4 Bjarne Stroustrup Data Center
  • 16. Left Join 7/26/2023 JDBC 16 SELECT * FROM employee e LEFT JOIN department d ON e.dept_id = d.dept_id Employee _ID Name Dept_id Dept_id Name E-1 James Gosling D-1 D-1 Human Resources E-2 Dennis M Ritchie (null) (null) (null) E-3 Richard Anderson D-2 D-2 Sales E-4 Bjarne Stroustrup D-3 D-3 Data Center
  • 17. Right Join 7/26/2023 JDBC 17 SELECT * FROM employee e RIGHT JOIN department d ON e.dept_id = d.dept_id Employee ID Name Dept ID Dept ID Dept Name E-1 James Gosling D-1 D-1 Human Resources E-3 Richard Anderson D-2 D-2 Sales E-4 Bjarne Stroustrup D-3 D-3 Data Center (null) (null) (null) D-4 Network Managed Services
  • 18. Full Outer Join 7/26/2023 JDBC 18 SELECT * FROM employee e FULL OUTER JOIN department d ON e.dept_id = d.dept_id Employee ID Name Dept ID Dept ID Dept Name E-1 James Gosling D-1 D-1 Human Resources E-2 Dennis M Ritchie (null) (null) (null) E-3 Richard Anderson D-2 D-2 Sales E-4 Bjarne Stroustrup D-3 D-3 Data Center (null) (null) (null) D-4 Network Managed Services
  • 19. HOW to Full Outer Join in MySQL 7/26/2023 JDBC 19 SELECT employee_id, e.name, d.name FROM employee e LEFT JOIN department d ON e.dept_id = d.dept_id UNION SELECT employee_id, e.name, d.name FROM employee e RIGHT JOIN department d ON e.dept_id = d.dept_id
  • 20. Query Execution Plan 7/26/2023 JDBC 20 SELECT * FROM employee e LEFT JOIN department d ON e.dept_id = d.dept_id Employee ID Name Dept ID Dept ID Dept Name E-1 James Gosling D-1 D-1 Human Resources E-1 James Gosling D-1 D-2 Sales E-1 James Gosling D-1 D-3 Data Center E-1 James Gosling D-1 D-4 Network Managed Services … … E-4 Bjarne Stroustrup D-3 D-3 Data Center E-4 Bjarne Stroustrup D-3 D-4 Network Managed Services
  • 21. Query Execution Plan 7/26/2023 JDBC 21 SELECT * FROM employee e LEFT JOIN department d ON e.dept_id = d.dept_id Employee _ID Name Dept_id Dept_id Name E-1 James Gosling D-1 D-1 Human Resources E-2 Dennis M Ritchie (null) (null) (null) E-3 Richard Anderson D-2 D-2 Sales E-4 Bjarne Stroustrup D-3 D-3 Data Center
  • 22. Query Optimization 7/26/2023 JDBC 22 - Query akan men-join table terlebih dahulu sebelum melakukan pengecekan pada WHERE condition - Performa query akan lebih optimal bila jumlah record pada table tersebut dapat direduksi terlebih dahulu
  • 23. Thank you Bayu Rimba Pratama, ST, M.Kom bayuforest@gmail.com