Como criar uma tabela com ForeignKeys utilizando JDBC

A tecnologia JDBC é uma API que forneçe conectividade cross-DBMS a uma larga escala de bancos de dados SQL e o acesso a outras origens de dados tabular, tais como spreadsheets ou arquivos comuns. Com o driver JDBC, você pode conectar todos os dados incorporados, mesmo em um ambiente heterogêneo.

ForeignKeys são necessários em aplicações dirigidas a banco de dados. A API JDBC ajuda a criar as colunas que têm foreignkeys em uma tabela.

O exemplo abaixo ilustra a criação de uma tabela com uma coluna com chave extrangeira (Foreign Key).

import java.sql.*;

public class createForeignKeyTable 
{
    public static void main(String[] args) 
    {
        DB db = new DB();
        Connection conn = 
            db.dbConnect(
"jdbc:jtds:sqlserver://localhost:1433/tempdb","sa","");
        db.createTables(conn);
    }
}

class DB
{
    public DB() {}

    public Connection dbConnect(String db_connect_string,
                                String db_userid, String db_password)
    {
        try
        {
            Class.forName("net.sourceforge.jtds.jdbc.Driver");
            Connection conn = DriverManager.getConnection
                              (
db_connect_string, db_userid, db_password);
            System.out.println("conectado");
            return conn;
            
        }
        catch (Exception e)
        {
            e.printStackTrace();
            return null;
        }
    }

    public void createTables(Connection conn)
    {
        String query;
        Statement stmt;
        
        try
        {
            query="create table cust_profile1 " +
                            "(id int,           "+
                            "fone varchar(32), " +
                            "móvel varchar(50), " +
                            "fax varchar(50), " +
                            "datadenascimento datetime, " +
                            "foreign key(id) references customer)";

            stmt = conn.createStatement();
            stmt.executeUpdate(query);
            stmt.close();
            conn.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
};