Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用jOOQ,如何按名称获取列的数据类型_Java_Sql_Jooq - Fatal编程技术网

Java 使用jOOQ,如何按名称获取列的数据类型

Java 使用jOOQ,如何按名称获取列的数据类型,java,sql,jooq,Java,Sql,Jooq,我正在尝试按名称获取字段的数据类型。我找到了方法getDataType,如果我知道该字段(例如MY_TABLE.MY_COLUMN\u NAME.getDataType()),该方法非常有效 但是我想通过字段名(例如,aDSL.fieldByName(“我的列名称”).getDataType())来查找它,其中aDSL的类型是DSLContext 我之所以希望这样做,是因为我正在结果集中使用的集合上构建一个通用排序函数,我不希望依赖开发人员为我的比较器传递正确的数据类型 有什么建议吗 我正在构建

我正在尝试按名称获取字段的数据类型。我找到了方法
getDataType
,如果我知道该字段(例如MY_TABLE.MY_COLUMN\u NAME.getDataType()),该方法非常有效

但是我想通过字段名(例如,
aDSL.fieldByName(“我的列名称”).getDataType()
)来查找它,其中aDSL的类型是
DSLContext

我之所以希望这样做,是因为我正在结果集中使用的集合上构建一个通用排序函数,我不希望依赖开发人员为我的比较器传递正确的数据类型


有什么建议吗

我正在构建一个定制的
比较器(我将结果集转换成一个列表,存储记录,以及其他内容,以便我可以对其进行各种操作、排序、过滤等)。为了构建比较器,我需要以下类型:

switch (R1.dataRecord.getValue( element ).getClass().toString())
{
   case "class java.lang.Long":
      compareResult = ( (Long) R1.dataRecord.getValue( element ) ).compareTo( (Long) R2.dataRecord.getValue( element ) );
      if (compareResult != 0)
           return compareResult * compareOrder;
           break;
   case "class java.lang.String":
      compareResult = ( (String) R1.dataRecord.getValue( element ) ).compareTo( (String) R2.dataRecord.getValue( element ) );
      if (compareResult != 0)
           return compareResult * compareOrder;
      break;
    ... etc ...
}

我能够从记录中获取类型。

这些类型可从
Result
record
通过以下途径获得:

Class<?> type1 = result.field("MY_COLUMN").getType()
Class<?> type2 = record.field("MY_COLUMN").getType()
classtype1=result.field(“MY_列”).getType()
Class type2=record.field(“MY_列”).getType()
见:


但是大多数标准数据类型都是可比较的,所以为什么不使用Java8的新数据类型呢?也许是“但是我想通过字段名找到它”——这是什么意思?你想从哪里“找到它”?为什么需要数据类型?为了回答这个问题,它将有助于更好地理解您的用例question@LukasEder-我不想通过字段的“正式”名称来引用该字段,例如MY_TABLE.MY_COLUMN,我想将其引用为结果中的名称。我在找到的解决方案中添加了更多信息。谢谢你的回复——很高兴看到有人对他们的产品如此自豪和所有权,我感谢你的时间和回答(不仅仅是对我的问题,还有你回答的所有其他问题——你为我节省了很多时间!)哦,我明白了。这很有创意:)我添加了另一个答案,以防万一这有帮助。。。