Como criar uma tabela com ForeignKeys utilizando JDBC

Veja nesta dica como criar tabelas com ForeignKeys.

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.*;

<B><SPAN lang=EN-US >public class </SPAN></B><SPAN lang=EN-US >createForeignKeyTable </SPAN>
<SPAN lang=EN-US >{</SPAN>
<B><SPAN lang=EN-US >public static void </SPAN></B><SPAN lang=EN-US >main(String[] args) </SPAN>
<SPAN lang=EN-US >{</SPAN>
<SPAN lang=EN-US >DB db = </SPAN><B><SPAN lang=EN-US >new </SPAN></B><SPAN lang=EN-US >DB();</SPAN>
<SPAN lang=EN-US >Connection conn = <BR>            db.dbConnect(</SPAN>
<SPAN lang=EN-US >"jdbc:jtds:sqlserver://localhost:1433/tempdb"</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >"sa"</SPAN><SPAN lang=EN-US >,</SPAN><SPAN lang=EN-US >""</SPAN><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >db.createTables(conn);</SPAN>
<SPAN lang=EN-US >}</SPAN>
<SPAN lang=EN-US >}</SPAN>

<B><SPAN lang=EN-US >class </SPAN></B><SPAN lang=EN-US >DB</SPAN>
<SPAN lang=EN-US >{</SPAN>
<B><SPAN lang=EN-US >public </SPAN></B><SPAN lang=EN-US >DB() {}</SPAN>

<B><SPAN lang=EN-US >public </SPAN></B><SPAN lang=EN-US >Connection dbConnect(String db_connect_string,</SPAN>
<SPAN lang=EN-US >String db_userid, String db_password)</SPAN>
<SPAN lang=EN-US >{</SPAN>
<B><SPAN lang=EN-US >try</SPAN></B>
<SPAN lang=EN-US >{</SPAN>
<SPAN lang=EN-US >Class.forName(</SPAN><SPAN lang=EN-US >"net.sourceforge.jtds.jdbc.Driver"</SPAN><SPAN lang=EN-US >);</SPAN>
<SPAN lang=EN-US >Connection conn = DriverManager.getConnection <BR>                              (</SPAN><SPAN lang=EN-US >db_connect_string, db_userid, db_password);</SPAN>
<SPAN lang=EN-US >System.out.println(</SPAN><SPAN lang=EN-US >"conectado"</SPAN><SPAN lang=EN-US >);</SPAN>
<B><SPAN lang=EN-US >return </SPAN></B><SPAN lang=EN-US >conn;</SPAN>

<SPAN lang=EN-US >}</SPAN>
<B><SPAN lang=EN-US >catch </SPAN></B><SPAN lang=EN-US >(Exception e)</SPAN>
<SPAN lang=EN-US >{</SPAN>
<SPAN lang=EN-US >e.printStackTrace();</SPAN>
<B><SPAN lang=EN-US >return null</SPAN></B><SPAN lang=EN-US >;</SPAN>
<SPAN lang=EN-US >}</SPAN>
<SPAN lang=EN-US >}</SPAN>

<B><SPAN lang=EN-US >public void </SPAN></B><SPAN lang=EN-US >createTables(Connection conn)</SPAN>
<SPAN lang=EN-US >{</SPAN>
<SPAN lang=EN-US >String query;</SPAN>
<SPAN lang=EN-US >Statement stmt;</SPAN>

<B><SPAN lang=EN-US >try</SPAN></B>
<SPAN lang=EN-US >{</SPAN>
<SPAN lang=EN-US >query=</SPAN><SPAN lang=EN-US >"create table cust_profile1 " </SPAN><SPAN lang=EN-US >+</SPAN>
<SPAN lang=EN-US >"(id int,           "</SPAN><SPAN lang=EN-US >+</SPAN>
<SPAN lang=EN-US >"fone varchar(32), " </SPAN><SPAN lang=EN-US >+</SPAN>
<SPAN lang=EN-US >"móvel varchar(50), " </SPAN><SPAN lang=EN-US >+</SPAN>
<SPAN lang=EN-US >"fax varchar(50), " </SPAN><SPAN lang=EN-US >+</SPAN>
<SPAN lang=EN-US >"datadenascimento datetime, " </SPAN><SPAN lang=EN-US >+</SPAN>
<SPAN lang=EN-US >"foreign key(id) references customer)"</SPAN><SPAN lang=EN-US >;</SPAN>

<SPAN lang=EN-US >stmt = conn.createStatement();</SPAN>
<SPAN lang=EN-US >stmt.executeUpdate(query);</SPAN>
<SPAN lang=EN-US >stmt.close();</SPAN>
<SPAN lang=EN-US >conn.close();</SPAN>
<SPAN lang=EN-US >}</SPAN>
<B><SPAN lang=EN-US >catch </SPAN></B><SPAN lang=EN-US >(Exception e)</SPAN>
<SPAN lang=EN-US >{</SPAN>
<SPAN lang=EN-US >e.printStackTrace();</SPAN>
<SPAN lang=EN-US >}</SPAN>
<SPAN lang=EN-US >}</SPAN>
<SPAN lang=EN-US >};</SPAN> 

Artigos relacionados