2009-08-06 99 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)。