递归火山软件开发平台

标题: 火山go中通过gorm如何同时操作多个表 [打印本页]

作者: eren    时间: 2025-1-12 12:38
标题: 火山go中通过gorm如何同时操作多个表
第一次学习go程序,打开自带的【跨平台HTTP通讯演示服务器端】例子,可以通过
<火山程序 类型 = "通常" 版本 = 1 />
db = Gorm数据库类.打开 (GormMySQL驱动程序类.打开 ("root:root@tcp(127.0.0.1:3306)/data?charset=utf8mb4&parseTime=True&loc=Local"), 空对象, 错误.取地址 ())
可以正常打开数据库,如何打开【user】表后登录后,我如何再对其他的表进行操作,如登录后,在【User3】表中查找姓名为用户名一直的所有记录,同时将这个姓名保存到【Company】表中:
<火山程序 类型 = "通常" 版本 = 1 />


类 用户类3 <公开 @本地类 = "" @输出名 = "User3">
{
    变量 ID <公开 类型 = 无符号整数 @输出名 = "ID" @服务器.标签 = "gorm:\"primarykey\"">
    变量 姓名 <公开 类型 = 文本型 @输出名 = "Name">
    变量 公司ID <公开 类型 = 整数 注释 = "和公司类的输出名\"Company\"以及主键输出名\"ID\"对应" @输出名 = "CompanyID">
    变量 公司 <公开 类型 = 公司类 注释 = "和公司类的输出名\"Company\"对应" 注释 = "" 注释 = "用户类3和公司类是\"属于关系\"." @输出名 = "Company">
}


类 公司类 <公开 @本地类 = "" @输出名 = "Company">
{
    变量 ID <公开 类型 = 无符号整数 @输出名 = "ID" @服务器.标签 = "gorm:\"primarykey\"">
    变量 名称 <公开 类型 = 文本型 @输出名 = "Name">
}

我是新手,发不了图片,麻烦火友们指点指点



作者: 创世魂    时间: 2025-1-12 21:32
你试试,应该是这样写的。

<火山程序 类型 = "通常" 版本 = 1 />

类 启动类 <公开 基础类 = 程序类 折叠>
{
    变量 可关闭 <类型 = 可关闭服务器类>

    方法 启动方法 <公开 类型 = 整数>
    {


        可关闭.等待关闭 ()  // 阻止服务器自动关闭
        返回 (1)
    }

    方法 例子
    {
        变量 数据库 <参考 类型 = Gorm数据库类>
        数据库 = Gorm数据库类.连接MySQL ()
        数据库.自动迁移 (新建对象 (user), 新建对象 (Company))
        变量 users <类型 = "user []">
        数据库.置Where条件 ("name = ?", "用户名").查找2 (users)
        循环 (取数组成员数 (users))
        {
            变量 company <类型 = Company>
            company.name = users [取循环索引 ()].name
            数据库.插入 (company)
        }

    }

    方法 可关闭服务器类_被关闭 <接收事件 类型 = 整数 注释 = "检测到收到中断信号(Ctrl+C)后,将触发本事件,在本事件下处理服务器被关闭时所需的操作." 折叠>
    参数 来源对象 <类型 = 可关闭服务器类 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    {
        如果 (来源对象 == 可关闭)
        {

        }
        返回 (0)
    }
}

类 Company <公开>
{
    变量 ID <公开 类型 = 整数>
    变量 name <公开 类型 = 文本型>
}

类 user <公开>
{
    变量 ID <公开 类型 = 整数>
    变量 name <公开 类型 = 文本型>

    #
}


作者: 创世魂    时间: 2025-1-12 21:33
其实就是正常cha询数据后,插入到另外一个表中。




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4