2009-08-06 8 views
0

Je peux créer une table et ses colonnes en Java en utilisant l'instruction:Ajouter une description aux colonnes en utilisant le code Java

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

Ce que je voudrais faire est d'ajouter des descriptions à chacune de ces colonnes avec une appropriée déclaration, j'ai trouvé une procédure stockée sp_addextendedproperty qui ressemble à ce qu'il peut être utilisé pour accomplir cela, je n'ai aucune idée de la façon de l'utiliser dans Java avec jdbc.

+0

Pourquoi voudriez-vous faire cela à partir de Java? Exécutez-vous également des instructions "create table" à partir de Java? Si ce n'est pas le cas, vous voudrez probablement garder les choses ensemble dans votre script DDL – ChssPly76

+0

oui je crée la table de données à partir de Java –

Répondre

1

Est-ce que vous créez la table dynamiquement au moment de l'exécution (par exemple dans le cadre de votre application) - peut-être que c'est même piloté par l'utilisateur? Si c'est le cas, vous avez déjà cette "documentation" (commentaires de colonne) quelque part et je doute de l'utilité de les ajouter à SQL Server.

Mais si vous essayez simplement d'automatiser votre build, jetez un oeil à LiquiBase. C'est un système de gestion de changement DB assez décent qui utilise XML comme épine dorsale. Il est écrit en Java et s'intègre bien avec Hibernate (utile si vous décidez d'utiliser ORM au lieu de JDBC).

Mise à jour: Si vous décidez d'aller de l'avant d'appeler la procédure stockée via JDBC, je fortement recommande d'utiliser CallableStatement pour l'invoquer. La construction dynamique de requêtes SQL dans l'application doit être évitée si possible.

1

Il y a plusieurs façons d'appeler une procédure stockée (essentiellement, la préparation de la déclaration et liant les variables, ou l'envoi d'une chaîne de SQL), mais le plus simple est de simplement envoyer rhe instruction SQL

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

Skipping votre try/finally passe-partout, et en supposant connection est un java.sql.Connection, c'est:

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

Mais ChssPly76 a un bon point: le faire à partir de Java est pas une bonne idée (sauf si vous développez un certain gestionnaire de bases de données à Ja Virginie).

Questions connexes