This tutorial will show you how to embedding Derby a.k.a Java DB in Java Desktop Application.
Requirement:- derby.jar
Lets begin this tutorial:
1. Create a new project and add derby.jar library to project.
2. Create a new class i called EmbeddedDerby:
public class EmbeddedDerby {
public EmbeddedDerby() {
}
public static void main(String... args) {
new EmbeddedDerby();
}
}2. Load "org.apache.derby.jdbc.EmbeddedDriver" instance:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();3. Create String variable name dbPath, using for path of derby database, in this case i called database as "My Database" and located at home dir of current user:private String dbPath = System.getProperty("user.home")+"/My Database";4. Create boolean dbExists using for database if exists:boolean dbExist = new File(dbPath).exists();
5. Create Connection conn variable:Connection conn = DriverManager.getConnection("jdbc:derby:"+dbPath+";create=true", "admin", "admin");6. Create Statement query variable for executing sql query:Statement query = conn.createStatement();
7. After making a connection and creating statement, if dbExists is false we need to import the DDL or creating tables:if (!dbExist) {
query.execute("CREATE TABLE member (member_id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), " +
"member_name VARCHAR(255), " +
"member_address VARCHAR(255), " +
"PRIMARY KEY (member_id))");
}8. Now the derby is ready, you may execute some queries to database, ok let we try insert some row of data into member table and display the content:// inserting 3 record
query.execute("INSERT INTO member (member_name, member_address) VALUES ('Sri Kuntadi', 'Purwodadi')");
query.execute("INSERT INTO member (member_name, member_address) VALUES ('Agung Panji Bawono', 'Demak')");
query.execute("INSERT INTO member (member_name, member_address) VALUES ('M. Jumari', 'Rimbo Bujang')");
// displaying record
ResultSet rs = query.executeQuery("SELECT * FROM member");
while (rs.next()) {
System.out.println("ID: "+rs.getInt("member_id")+"; Name: "+rs.getString("member_name")+"; Address: "+rs.getString("member_address"));
}
and we will get result like this:ID: 1; Name: Sri Kuntadi; Address: Purwodadi
ID: 2; Name: Agung Panji Bawono; Address: Demak
ID: 3; Name: M. Jumari; Address: Rimbo Bujang
Conclusion:
You can place path of the derby database at any folder on runtime.
Complete Source Code:/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.kazao.tips.tip025;
import java.io.File;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Mr. Kazao
*/
public class EmbeddedDerby {
private String dbPath = System.getProperty("user.home") + "/My Database";
public EmbeddedDerby() {
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
boolean dbExist = new File(dbPath).exists();
Connection conn = DriverManager.getConnection("jdbc:derby:" + dbPath + ";create=true", "admin", "admin");
Statement query = conn.createStatement();
if (!dbExist) {
query.execute("CREATE TABLE member (member_id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), " +
"member_name VARCHAR(255), " +
"member_address VARCHAR(255), " +
"PRIMARY KEY (member_id))");
}
// inserting 3 record
query.execute("INSERT INTO member (member_name, member_address) VALUES ('Sri Kuntadi', 'Purwodadi')");
query.execute("INSERT INTO member (member_name, member_address) VALUES ('Agung Panji Bawono', 'Demak')");
query.execute("INSERT INTO member (member_name, member_address) VALUES ('M. Jumari', 'Rimbo Bujang')");
// displaying record
ResultSet rs = query.executeQuery("SELECT * FROM member");
while (rs.next()) {
System.out.println("ID: "+rs.getInt("member_id")+"; Name: "+rs.getString("member_name")+"; Address: "+rs.getString("member_address"));
}
} catch (SQLException ex) {
Logger.getLogger(EmbeddedDerby.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(EmbeddedDerby.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(EmbeddedDerby.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(EmbeddedDerby.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String... args) {
new EmbeddedDerby();
}
}
+++Read More+++Summary only+++View Complete Source
+++Hide Complete Source+++