递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

78

主题

650

帖子

5598

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

使用道具 举报

7

主题

81

帖子

2914

积分

金牌会员

Rank: 6Rank: 6

积分
2914
12#
 楼主| 发表于 前天 05:12 | 只看该作者
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

主题

81

帖子

2914

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

8

主题

88

帖子

310

积分

中级会员

Rank: 3Rank: 3

积分
310
QQ
14#
发表于 前天 11:59 | 只看该作者

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

使用道具 举报

28

主题

2207

帖子

7982

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

7

主题

81

帖子

2914

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

6

主题

108

帖子

2286

积分

金牌会员

Rank: 6Rank: 6

积分
2286
17#
发表于 前天 12:28 | 只看该作者
大佬,连接池可否加上?
回复

使用道具 举报

7

主题

81

帖子

2914

积分

金牌会员

Rank: 6Rank: 6

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

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

使用道具 举报

28

主题

2207

帖子

7982

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

11

主题

153

帖子

952

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
952
20#
发表于 前天 14:03 | 只看该作者
支持
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-27 01:41 , Processed in 0.094744 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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