16. What is a Relational DB?
De-facto Standard
Table-based
17. What is a Relational DB?
De-facto Standard
Table-based
Relation between Tables
18. What is a Relational DB?
De-facto Standard
Table-based
Relation between Tables
Stores primitive Types
19. What is a Relational DB?
De-facto Standard
Table-based
Relation between Tables
Stores primitive Types
Access through SQL (Structured Query Language)
21. An RDB Example
ISBN BOOK
1 Kamasutra
2 The Bible
3 Hamlet
22. An RDB Example
ISBN BOOK ISBN AUTHOR
1 Kamasutra 1 R. F. Burton
2 The Bible 2 God
3 Hamlet 3 Shakespeare
23. An RDB Example
ISBN BOOK ISBN AUTHOR
1 Kamasutra 1 R. F. Burton
2 The Bible 2 God
3 Hamlet 3 Shakespeare
ISBN BOOK AUTHOR
1 Kamasutra R. F. Burton
2 The Bible God
3 Hamlet Shakespeare
33. From DB to the App
RDB OODB
SELECT * FROM table
Primitive Types
Object
34. From DB to the App
RDB OODB
SELECT * FROM table
Primitive Types Object
Object
35. OODB Sourcecode
ObjectContainer oodb = Db4o.openFile("test.oodb");
User chris = new User("Chris");
oodb.store(chris);
oodb.store(new User("Christian"));
List<User> users = oodb.query(User.class);
for (User u : users) {
System.out.println(u);
}
System.out.println(users.get(0).equals(chris));
users = oodb.query(new Predicate<User>() {
public boolean match(User user) {
return user.getName().contains("Christi");
}
});
for (User u : users) {
System.out.println(u);
}
oodb.close();
36. RDB Sourcecode
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://192.168.1.135:3306/foo", "root", "user");
User chris = new User("Chris")
con.createStatement().executeQuery("INSERT INTO Users VALUES ("", " + chris.getName() + ");
con.createStatement().executeQuery("INSERT INTO Users VALUES ("", " + new User("Chris").getName() + ");
ResultSet users = con.createStatement().executeQuery("SELECT * FROM User");
while (users.next()) {
User user = new User(users.getInt("id"), user.getString("name"));
if (user.getName().equals(chris.getName()) {
System.out.println(user.equals(chris)); // false
}
}
con.close();