-->
当前位置:首页 > 题库 > 正文内容

编程题:对象关系映射

Luz3年前 (2022-04-05)题库568
一开始看到**对象关系映射**,其实我是拒绝的。这三个词凑一块,能是给C++初学者的题吗?
再仔细读需求,才发现在课设项目已经用过这功能。Object Relational Mapping(**ORM**)就是面向对象语言侧的**模型类、对象、属性**与数据库中**表(关系)、记录、列**对应,由ORM框架完成两侧的相互转换。

有趣的是:语言侧**标识符**区分大小写,使用驼峰表示法。而数据库的标识符不区分大小写,为分隔单词要加下划线。标识符映射在Repository类里惹了不少乱子。例如:

- 语言中的属性studentId,对应数据库的student_id。就是大写字母要改成小写,并且如果不是首个字母,还要在前面追加一个下划线。
- 数据库的表名student_honor,对应语言侧的类名StudentHonor。与属性不同,类名首字母要大写。

任务:实现类似ORM标识符映射的功能。

先导题:标识符。

#### 输入规格

- 每行一组数据,读取到EOF为止。
- 每组数据有**类型、标识符**两个字符串,间隔若干空白符。
- 类型:class field table column四种之一。
- 标识符:待转换的字符串。

#### 输出规格

- 每行输出一组转换结果。

#### 样例输入

in
class StudentHonor
field studentId
table course
column pre_course_id


#### 样例输出

out
table student_honor
column student_id
class Course
field preCourseId


#### 样例解释

- 第1组:class对应table,字母全改成小写,中间的大写字母前要插入下划线分割。
- 第2组:field对应column,同上。
- 第3组:table对应class,首字母大写,去掉下划线,下划线后续字母也大写。
- 第4组:column对应field,去掉下划线,下划线后续字母改大写。





答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。