2009-08-06 95 views
0

添加說明,列我可以創建一個表,並通過聲明其在Java列:使用Java代碼

CREATE TABLE table_name(column1 int, column2 double, etc...) 

我想這樣做是爲了說明添加到每個這些列與適當的聲明,我發現一個存儲過程sp_addextendedproperty,看起來它可以用來實現這一點,我只是不知道如何在java中使用它與jdbc。

+0

你爲什麼要從Java做到這一點?你是否也在執行java的「create table」語句?如果沒有,大概你會想把東西捆綁在一起DDL腳本 – ChssPly76 2009-08-06 02:18:43

+0

是的,我正在從Java創建數據表 – 2009-08-06 02:28:15

回答

1

您是否在運行時動態創建表(例如作爲應用程序的一部分) - 也許這甚至是用戶驅動的?如果是這樣的話,你已經有了「文檔」(列註釋),我懷疑將它們添加到SQL Server的效用。

但是,如果你只是試圖自動化你的構建,看看LiquiBase。這是一個相當不錯的數據庫變更管理系統,它使用XML作爲主幹。它是用java編寫的,並且與Hibernate很好地集成(如果你決定使用ORM而不是直接使用JDBC)。

更新:如果你決定通過JDBC調用存儲過程來往前走,我會強烈建議使用CallableStatement調用它。如果可能,應避免在應用程序中動態構建SQL查詢。

1

有許多的方式來調用存儲過程(本質上,準備語句和綁定變量,或發送SQL的字符串),但最簡單的是隻送RHE SQL語句

exec sp_addextendedproperty list, of, arguments, the, sp, needs; 

跳過你的try /終於樣板,並假設connectionjava.sql.Connection,這就是:

connection 
    .createStatement() 
     .execute("exec sp_addextendedproperty arguments;"); 

但ChssPly76好點:從Java做的,這是不是一個好主意(除非你正在開發一些數據庫管理器在Ja VA)。