2010-04-20 34 views
2

我希望能够检查,如果我能有一个新的对象编辑数据库中的一个细胞检查编辑是有效的数据库MS-访问

实例方法声明:

something.isValid(Object newObject, row, column);

例如案例:

  • 如果编辑单元存储数 ,我给它一个字符串,该方法 将返回false ...
  • 如果编辑 电池具有比所有其他 条目(唯一的)不同,新的目标是相同的 为别的,该方法 也将返回false ....

我主要目标... 我想检查一整行,如果一切都有效,我将编辑整行。

现在,我可以看看我实际上可以编辑的时候,唯一的办法是通过实际编辑它,看,如果我得到一个错误。

编辑:// Interface DatabaseMetaData是一个很好的方法。有没有SQL命令方法?

****编辑://我觉得像resultsetmeta数据是不够好。然而,isUnique()方法在哪里?** edit:// isSigned()完成此操作? 编辑://所以我只是检查!isSigned()和isWritable()。数据库列条件呢?例如... X有超过3个字符... **

回答

3

不要使用Object,但只是用它与有问题的数据类型相关联的类型。你可以找到here更详细的信息有关的Java对象类型,你应该使用某些数据库的数据类型与各该表下:

alt text http://java.sun.com/j2se/1.5.0/docs/guide/jdbc/getstart/mapping.anc1.gif

或者,您可以使用DatabaseMetaData#getColumns()推测列信息(列名,数据类型,大小,最大长度,可空值等)。

有许多其他方法可能有用,例如, getIndexInfo()来数字的所有指标,getPrimaryKeys()来数字的PK,getExportedKeys()来数字的FK的,等等。只需在整个DatabaseMetaData API中捅一下就可以发现您需要。

+0

这很有用,但我认为ResultSetMetaData更容易。思考? – twodayslate 2010-04-21 18:36:01

+1

它包含相同的信息。你只需要创建/准备一个'Statement',然后查询一个'ResultSet',然后才能得到它。这没有多大意义。只需使用'Connection',您就可以获得'DatabaseMetaData'。 – BalusC 2010-04-21 18:37:54

+0

哦,我明白了。这是一个很大的好处。现在改变我更正了RSMD东西DMD东西... – twodayslate 2010-04-21 18:44:41