views:

52

answers:

1

I am facing the following design/implementation dilemma. I have a class Customer which is below with getters and setters. I would like to insert the value of the Customer into a "Customer" table of a database. But Customer has an address which is of type "Address". How do I go about inserting this field into the database?(I am using sqlite3). I thought of writing a separate table "Address(customerId,doorNo,city,state,country,pinCode)". But I am having second thoughts about generating the primary key(customerId) which should be same for both the "customer" and "Address" table. Sqlite3 faq states that I can do "Integer Primary Key" to use the field to generate an auto number. But if I do that in customer table, I would have to retrieve the same Id to be used in Address table. This kinda looks wrong to me :-?. There should be an elegant method to solve this. Any ideas would be much appreciated. Thanks in advance.

import java.io.*;
import java.sql.*;
class Customer {

    private String id;
    private String name;
    private Address address;
    private Connection connection;
    private ResultSet resultSet;
    private PreparedStatement preparedStatement;
    public void insertToDatabase(){

    }

}
class Address{
    private String doorNumber;
    private String streetName;
    private String cityName;
    private String districtName;
    private String stateName;
    private String countryName;
    private long pinCode;
}
+4  A: 

have a read about Relational Database design, JDBC, SQLite JDBC and hibernate

there's way too many things to answer to go in to detail on this (for me anyway ;))

pstanton
and also object oriented programming.
NetSide
Thanks for the links pstanton. I've heard about hibernate but I think that would be overkill for the simple app I am developing here.
paul