eren 发表于 2025-1-12 12:38:24

火山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:12

你试试,应该是这样写的。

<火山程序 类型 = "通常" 版本 = 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:09

其实就是正常cha询数据后,插入到另外一个表中。
页: [1]
查看完整版本: 火山go中通过gorm如何同时操作多个表