我的编程空间,编程开发者的网络收藏夹
学习永远不晚

从数据库中检索自定义对象

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

从数据库中检索自定义对象

本篇文章向大家介绍《从数据库中检索自定义对象》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我有一个数据存储表,就像这样

name/id  |  useremail  |  userrole  |  userpermissions 
------------------------------------------------------

json 中的 userrole 属性是 string。然而,在 go 代码中,它是一个类型

type userdetails struct {
    nameid string
    useremail string
    userrole usertype
    userpermissions string //json??
}

type usertype string

const (
    unknownuserrole usertype = "unknown"
    siteadmin       usertype = "site_admin"
    sitehr usertype = "site_hr"
)

func (ut *usertype) string() string {
    return string(*ut)
}

func usertypefromstring(usertype string) usertype {
    switch usertype {
    case "site_admin":
        return siteadmin
    case "site_hr":
        return sitehr
    default:
        return unknownrole
    }
}

现在,我必须读取给定 org所有用户。我正在使用此代码来执行此操作

func (c DataStoreClient) GetUserDetailsByOrg(ctx context.Context, orgName string) ([]*UserDetails, error) {
    var userDetails []*UserDetails
    q := datastore.NewQuery(userDetailsKind).
        Namespace(orgName)
    keys, err := c.client.GetAll(ctx, q, &userDetails)
    for i, key := range keys {
        userDetails[i].NameID = key.Name
    }
    return userDetails, err
}

如何使用上述代码将 usertype 从数据存储读取到 userdetails.usertype 枚举中?


解决方案


问题中的代码按原样工作。无需按照其他答案中的建议实现 PropertyLoadSaver 或循环返回的实体。

自定义数据类型是字符串。数据存储包将所有字符串类型编组到数据存储字符串或从数据存储字符串编组。它确实有效。

本篇关于《从数据库中检索自定义对象》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注编程网公众号!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

从数据库中检索自定义对象

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

从数据库中检索自定义对象

本篇文章向大家介绍《从数据库中检索自定义对象》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。问题内容我有一个数据存储表,就像这样name/id | useremail | userrole | userpermissi
从数据库中检索自定义对象
2024-04-04

JDBC 中的结果是什么如何从 ResultSet 对象中检索数据

JDBC (Java Database Connectivity) 中的结果是从数据库中检索出的数据。可以使用 ResultSet 对象来访问和操作这些数据。以下是如何从 ResultSet 对象中检索数据的一般步骤:1. 使用 execu
2023-10-10

如何使用 PHP 函数从数据库中检索数据?

在 php 中,可以使用 mysqli_query() 函数检索数据库数据,并使用 mysqli_fetch_row()、mysqli_fetch_assoc() 和 mysqli_fetch_array() 函数提取结果以获取行数据,还可
如何使用 PHP 函数从数据库中检索数据?
2024-04-30

我们如何使用 JDBC 从数据库中检索文件?

ResultSet接口提供名为getClob()和getCharacterStream()的方法来检索Clob数据类型,通常存储文件的内容。这些方法接受表示列索引的整数(或表示列名称的字符串值)并检索指定列处的值.区别在于 getClob(
2023-10-22

我们如何使用 JDBC 从数据库中检索文件

使用JDBC从数据库中检索文件的一般步骤如下:1. 导入所需的JDBC库:将数据库驱动程序的JAR文件添加到项目的类路径中。2. 建立数据库连接:使用JDBC的`java.sql.Connection`接口建立与数据库的连接。这需要提供数据
2023-10-10

如何根据特定列名称从数据库中检查 MySQL 表?

以下语句显示了示例数据库中具有“email”列的两个表的列表 -mysql> SELECT DISTINCT TABLE_NAME-> FROM INFORMATION_SCHEMA.COLUMNS-> WHERE COLUMN_NAME
2023-10-22

Feign远程调用传递对象参数并返回自定义分页数据的方法

这篇文章主要介绍“Feign远程调用传递对象参数并返回自定义分页数据的方法”,在日常操作中,相信很多人在Feign远程调用传递对象参数并返回自定义分页数据的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”F
2023-06-29

如何在Oracle中检查数据库对象的状态和空间使用情况

要在Oracle中检查数据库对象的状态和空间使用情况,可以使用以下几种方法:使用Oracle SQL Developer工具:在SQL Developer中连接到要检查的数据库。在“Connections”面板中展开数据库连接并选择“Ta
如何在Oracle中检查数据库对象的状态和空间使用情况
2024-04-09

使用jdbc将mysql数据库中的内容封装为指定对象的list集合

使用jdbc将mysql数据库中的内容封装为指定对象的list集合public List findAll() { private JdbcTemplate template = new JdbcTemplate(JdbcUtils.getDataSour
使用jdbc将mysql数据库中的内容封装为指定对象的list集合
2017-09-23

PHP如何使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

PHP中使用自定义比较函数对数组进行排序,保持索引关联。usort()和uksort()函数用于按值或键进行排序。自定义比较函数返回整数表示比较结果:正数(大于)、零(相等)、负数(小于)。示例包括按长度、数字大小和键字母顺序排序。注意比较函数仅比较元素值,以保留索引关联。
PHP如何使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
2024-04-02

Java如何使用用户自定义的比较函数对数组中的值进行排序并保持索引关联

Java中使用自定义比较函数对数组排序并保持索引关联的方法:定义一个实现Comparator接口的比较函数类,指定排序规则。使用Arrays.sort()方法对数组排序,并传入自定义比较函数作为第二个参数。获取Arrays.sort()返回的索引数组,以获得元素在排序前后的索引。通过自定义比较函数,可以按特定规则排序数组并保留索引,实现更灵活的排序需求。
Java如何使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
2024-04-02

SQLServer 错误 2592 修复:已为数据库 DATABASE 中的对象 OBJECT 成功重新生成了 INDEX_TYPE 索引。 故障 处理 修复 支持远程

详细信息 Attribute 值 产品名称 SQL Server 事件 ID 2592 事件源 MSSQLSERVER 组件 SQLEngine 符号名称 DBCC_REPAIR_INDEX_REBUILT ...
SQLServer 错误 2592 修复:已为数据库 DATABASE 中的对象 OBJECT 成功重新生成了 INDEX_TYPE 索引。 故障 处理 修复 支持远程
2023-11-05

SQLServer 错误 2579 表错误:对象 ID O_ID,索引 ID I_ID,分区 ID PN_ID,分配单元 ID A_ID(类型为 TYPE)中的区 P_ID 超出了此数据库的范围。 故

详细信息 Attribute 值 产品名称 SQL Server 事件 ID 2579 事件源 MSSQLSERVER 组件 SQLEngine 符号名称 DBCC_EXTENT_OUT_OF_RANGE ...
SQLServer 错误 2579 表错误:对象 ID O_ID,索引 ID I_ID,分区 ID PN_ID,分配单元 ID A_ID(类型为 TYPE)中的区 P_ID 超出了此数据库的范围。 故
2023-11-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录