递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
楼主: 龙纹
打印 上一主题 下一主题

[视窗] ORM类库,用新语法重新封装了一遍

[复制链接]

80

主题

670

帖子

5774

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
5774
11#
发表于 2025-4-24 23:40:10 | 只看该作者
希望继续完善,有几个疑虑
1、你或者也要定义数据模型吗?定义的方法跟火山go一样吗?
2、事务操作功能如何?
3、连接池管理数据库连接
回复

使用道具 举报

7

主题

86

帖子

3009

积分

论坛元老

Rank: 8Rank: 8

积分
3009
12#
 楼主| 发表于 2025-4-25 05:12:00 | 只看该作者
nurjay 发表于 2025-4-24 23:40
希望继续完善,有几个疑虑
1、你或者也要定义数据模型吗?定义的方法跟火山go一样吗?
2、事务操作功能如何 ...

1、需要定义一个映射类,下面是定义代码:
  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 类 个人信息 <公开 注释 = "类和成员变量名的输出名一定要改!!!" @输出名 = "person">
  3. {

  4.     # @begin
  5.     # // 注册自增主键,类名(主键字段名)
  6.     # REGISTER_AUTO_KEY(person, id)
  7.     # // 注册冲突主键,类名(冲突主键字段名)
  8.     # // REGISTER_CONFLICT_KEY(person, name)
  9.     # // REGISTER_CONFLICT_KEY(person, name, age) // 如果是多个
  10.     #
  11.     # // 生成映射类所需的一些信息,这里填入 类名(字段名1,字段名2,...)
  12.     # YLT_REFL(person, id, age, name)
  13.     # @end
  14.     #

  15.     变量 id <公开 类型 = 整数 @输出名 = "id">
  16.     变量 age <公开 类型 = 整数 @输出名 = "age">
  17.     变量 name <公开 类型 = 标准文本类 @输出名 = "name">

  18.     #
  19. }

  20. 类 个人信息数组类 <公开 基础类 = 标准数组模板类 @模板实现类 = "个人信息">
  21. {

  22.     #
  23. }
复制代码
此外还有其他操作,比如表名能设置别名,不强制要求跟类输出名一致,字段同样,可以参考Github项目内的示例。

2、已经封装了开始事务、提交事务、回滚。

3、Github项目是支持连接池的,只是暂未封装。
火山PC交流群: 748413192
回复

使用道具 举报

7

主题

86

帖子

3009

积分

论坛元老

Rank: 8Rank: 8

积分
3009
13#
 楼主| 发表于 2025-4-25 11:33:26 | 只看该作者
已经更新,现在支持SQLite3、MySQL、PostgreSQL三种数据库随意切换
火山PC交流群: 748413192
回复

使用道具 举报

10

主题

100

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
QQ
14#
发表于 2025-4-25 11:59:10 | 只看该作者

超级牛X666
:噜阿噜 道生易 易生万物 Q516221198
回复

使用道具 举报

29

主题

2308

帖子

8270

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8270
15#
发表于 2025-4-25 12:09:16 | 只看该作者
龙纹 发表于 2025-4-25 11:33
已经更新,现在支持SQLite3、MySQL、PostgreSQL三种数据库随意切换

模块安装包写错了,安装到安卓那边了……
回复

使用道具 举报

7

主题

86

帖子

3009

积分

论坛元老

Rank: 8Rank: 8

积分
3009
16#
 楼主| 发表于 2025-4-25 12:27:40 | 只看该作者
Xelloss0618 发表于 2025-4-25 12:09
模块安装包写错了,安装到安卓那边了……

谢谢提醒,晚点重新更新。
顺便问一下,@别名类型-本地类,好像没办法支持嵌套?
实现类是sqlite3、mysql、pg,模板类dbng<sqlite|mysql|pg>是适配器,是不是只能把所有重复方法在每个类都写一遍。
火山PC交流群: 748413192
回复

使用道具 举报

6

主题

109

帖子

2338

积分

金牌会员

Rank: 6Rank: 6

积分
2338
17#
发表于 2025-4-25 12:28:25 | 只看该作者
大佬,连接池可否加上?
回复

使用道具 举报

7

主题

86

帖子

3009

积分

论坛元老

Rank: 8Rank: 8

积分
3009
18#
 楼主| 发表于 2025-4-25 12:29:30 | 只看该作者
michardhl 发表于 2025-4-25 12:28
大佬,连接池可否加上?

我得再找时间思考一下如何把连接池封装进来
火山PC交流群: 748413192
回复

使用道具 举报

29

主题

2308

帖子

8270

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8270
19#
发表于 2025-4-25 12:43:52 | 只看该作者
龙纹 发表于 2025-4-25 12:27
谢谢提醒,晚点重新更新。
顺便问一下,@别名类型-本地类,好像没办法支持嵌套?
实现类是sqlite3、mysql ...

可以用模板基础类的,也可以用个基类写重复的方法,然后继承它,在实现类写上别名即可。
基类我建议你随便写个别名,比如"\\",避免出现对象类那些方法。
回复

使用道具 举报

11

主题

157

帖子

1001

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1001
20#
发表于 2025-4-25 14:03:45 | 只看该作者
支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-6-7 01:20 , Processed in 0.090446 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表