有可能在java中获取mysql枚举文件的索引值吗?

Koe*_*err 1 java mysql jdbc

表:

CREATE TABLE `table` (
  `id` int(11) NOT NULL,
  `status` enum('on','off') NOT NULL DEFAULT 'off',
  PRIMARY KEY (`id`),
) 
Run Code Online (Sandbox Code Playgroud)

我可以使用枚举索引值来更新或插入:

update table set status=1 where id=12(更新id = 2 statuson)

但是在java中,Enum字段类型总是返回String (在这里查看)

select status from table where id=2

或使用resultSet.getObject("status")(java)

总是返回String on,但我想得到整数1

这可能吗?

Eug*_*eck 5

SELECT 
  CAST(`status` AS UNSIGNED) AS numerical_status
FROM `table`
Run Code Online (Sandbox Code Playgroud)

陷阱:这是从1开始的,所以你得到1 on和2off

编辑

如果您不能使用计算字段(无论出于何种原因),请创建一个视图:

CREATE OR REPLACE VIEW `table_numstatus` AS
  SELECT `id`,  CAST(`status` AS UNSIGNED) AS `status`
  FROM `table` ;
Run Code Online (Sandbox Code Playgroud)

并将您的查询指向此视图,而不是表格.