我是靠谱客的博主 勤恳美女,最近开发中收集的这篇文章主要介绍java枚举和数据库结合_JDBC:Java中枚举类型和PostgreSQL数据库中枚举类型的映射...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

以下内容转自:

https://blog.csdn.net/theonegis/article/details/41749773

PostgreSQL数据库允许你使用如下的语法创建枚举类型:

CREATE TYPE animal_type AS ENUM('DOG', 'CAT', 'SQUIRREL');

创建以后就可以使用animal_type作为数据表中的数据类型,例如:

create table pet (

pet_id integer not null,

pet_type animal_type not null,

name varchar(20) not null

);

在Java中你也要创建相应的枚举类型:

public enum AnimalType {

DOG,

CAT,

SQUIRREL;

}

Java中枚举类型和PostgreSQL中枚举类型的转换是很直接的。例如,要进行数据的插入或者更新,可以使用CAST语法在SQL 的PreparedStatement语句中这样写:

INSERT INTO pet (pet_id, pet_type, name) VALUES (?, CAST(? AS animal_type), ?);

或者

INSERT INTO pet (pet_id, pet_type, name) VALUES (?, ?::animal_type, ?);

注:这两种SQL语句作用是一样的。

PostgreSQL还可以允许你传递一个String类型的字符来进行对数据库中枚举类型数据的插入或者更新。

在Java端代码都是一一样的,你像下面一样可以设置字段的值:

stmt.setInt(1, 1);

stmt.setString(2, AnimalType.DOG.toString());

stmt.setString(3, 'Rex');

从数据库中提取枚举枚举类型的值也很简单:

AnimalType.valueOf(stmt.getString("pet_type"));

考虑到枚举类型时大小写敏感的,所以你在PostgreSQL数据库和Java嗲面中应该考虑到,做到大小写统一。而且PostgreSQL中的enum枚举类型不是标准的SQL类型所以不具有可移植性。

在PostgreSQL中参考枚举类型的值,可以使用如下的查询语句:

SELECT enumlabel FROM pg_enum

WHERE enumtypid = 'your_enum'::regtype ORDER BY oid;

最后

以上就是勤恳美女为你收集整理的java枚举和数据库结合_JDBC:Java中枚举类型和PostgreSQL数据库中枚举类型的映射...的全部内容,希望文章能够帮你解决java枚举和数据库结合_JDBC:Java中枚举类型和PostgreSQL数据库中枚举类型的映射...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部