youyixiao / rapid-framework

Automatically exported from code.google.com/p/rapid-framework
0 stars 0 forks source link

关于主键方式为assigned的几个修改及说明 #15

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
如果是生成的表采用increment的方式,我相信单表的增、删、��
�、修都不会有问题;但是项目
中主键的方式好多都是要采用业务字段或业务字段的组合来��
�为主键,虽然这个不好,但是我所
参与的项目中经常是这样的情况。
如果是用业务字段的单个字段作为主键,这个时候用户需要��
�已实现生成主键的类,这个我做了
修改并增加了一个简单的模板生成类,用户只需要针对生成��
�的单主键生成类实现其中的主键生
成方法即可,这个时候也就是不管是单主键或者是多主键都��
�有主键生成方法,只是内容不一样
而已,见附件,经测试可以实现增、删、查、改功能。
如果是用业务字段的多个字段作为主键,原程序没有考虑到��
�主键需要采用对象,而不是其字段
类型了,这个就会产生我前面提到的生成了两个主键的问题��
�这个我也对生成模板作了修改,不
过因为时间关系,还没有测试,只是生成的代码中不会出现��
�前面上传的附件中的问题了。
我的数据库是SQLSERVER2008,因为当前项目中采用的是这个,我�
��用了这个作为测试,我不知
道测试的结果是否与数据库有关,我把我发现的问题以及修��
�记录了一下。

另外,我前面曾经使用过普元的EOS,我觉得RAPID-FRAMEWORK可以��
�其加入:
1、查询显示页面实现字段可配置性。
2、增、查、改页面每一行显示字段的数目,需要显示一些样�
��内容也可以实现配置性。

以下是两个附件:
1、单业务字段主键的模板文件:${className}Id.java@!compositeId
2、针对业务字段主键的修改记录
{本来是想自己做的,但我认为你肯定比我做得更好哦@_@}

最后建意如果在时间允许,还麻烦你在generator补充一些必要��
�Doc,毕竟我们要做DOC.
希望Rapid-Framework越来越好哦

Original issue reported on code.google.com by fengli...@gmail.com on 1 Oct 2009 at 3:12

Attachments:

GoogleCodeExporter commented 9 years ago
多主键问题主要是有不同的dao实现,rapid现在由于要支持多个
web框架
(struts,struts2,springmvc)及dao层(spring_jdbc,hibernate,ibatis),所以一修
改需要动全
身。

所以这个也是比较烦恼的问题。

不过模板方面你可以编写属于自己的模板,rapid自带的模板主
要是为了你的修改方便,而且jsp
那一层的东西可能根本就不符合你的要求,所以无法全部适��
�。

${className}Id.java@!compositeId,我在Table对象中会增加
${className}Id.java@notCompositeId这个,就避免需要增加感叹号的问�
��了。然后仍然是原来
的意思,只要表达式是true,则生成文件.
因为这个是整Table的这些model修改相关的,所以直接给你们生�
��器的源码也是这个意思,开发
自己的模板及model对象.

不过你可以反馈过来,很通用的model属性,我会增加在rapid里�
��的,以后大家编写的模板都可
以在rapid运行.

increment主键的问题已经在guide.html里面说明了,一般是根据自�
��需要修改的,如有的人是使
用oracle的sequence

Original comment by bad...@gmail.com on 9 Oct 2009 at 1:46

GoogleCodeExporter commented 9 years ago
在rapid-framework的基础之上,我将其修改为可以支持以下主键��
�型:
1、生成主键采用increment的数字类型
2、单业务字段主键、采用生成方式为assigned,非数字型,通��
�为字符串型,测试采用的是字符串类型进行
的测试
3、多业务字段作主键、主键生成方式采用assigned的,测试的��
�候采用的两个字符型的字段作主键
都可以实现其增、删、查、改功能

以下需要注意:
1、在生成主键采用increment的数字类型表的增、删、查、改操�
��,用户不需要对其作任何修改,直接使用
生成好的代码
2、采用单业务字段的主键生成模式,用户在生成后文件后,�
��要修改生成好的model目录的主键生成类
{className}Id.java中的主键生成方法generate
3、针对多业务字段作主键的,用户在生成后文件后,需要生�
��后的action目录中对应的Action类
{className}Action.java,修改其中的save()方法,根据实现情况,
生成多业务字段值。
4、如果数据库中有文件类型的字段,model目录中对应的java类�
��要将其生成的java.sql.Clob修改为
java.lang.String类型
5、根据表的主键类型,在generator.properties中设置正确的主键��
�成类型

详细修改参见附件
测试的为struts2+Hibernate3+spring

测试环境为Apache Tomcat/5.0.30+jdk1.5.0_18-b02

Original comment by fengli...@gmail.com on 12 Oct 2009 at 8:45

Attachments:

GoogleCodeExporter commented 9 years ago
谢谢你的修改,不过由于还要考虑其它dao实现,后面有时间��
�再集成进来。

Original comment by bad...@gmail.com on 13 Oct 2009 at 2:33

GoogleCodeExporter commented 9 years ago
Issue 27 has been merged into this issue.

Original comment by bad...@gmail.com on 25 Nov 2009 at 6:35