String saaaa ;
public void setSaaaa(String _saaaa){
  this.saaaa = _saaaa;
}
public String getSaaaa(){
  return saaaa;
}

解决方案 »

  1.   

    用EJB吧,你的这种想法,正是entity EJB所实现的(其中一部分功能)。
      

  2.   

    刚才说的是一楼的
    二楼的能解释详细点吗
    我没用过ejb的
    网上也搜不到相关的资料
    多谢了
      

  3.   

    嗐,吓了我一跳。说详细点,不是太容易,EJB需要支持EJB的服务器,Tomcat是不行了。按cm4ever(小P) 的说法,也是很好的方案,而且还可以继续使用Tomcat。据说性能还比java的EJB规范的entity EJB要好。
      

  4.   

    楼上的可能还是没有明白我的意思啊我就是在用hibertnate因为数据库设计书中所有的表字段都写在excel文件里如果手工生成这些 java_model mapping_xml create_table_sql 文件太麻烦了而且数据库设计一旦修改,所有的文件都要跟着修改,很不安全的所以想自己写一个工具,可以读取excel,然后自动生成这些文件这下大家明白了吗?现在大部分都已经做好了,就是生成的model里的get set方法不是很理想因为如果字段都是些简单的字符串还无所谓,有点特殊的话,只用首字母大写的编码方式就不对了当然编译器也可以自动生成get set方法的,但是太麻烦,尤其是数据库设计变了之后,简直就是噩梦希望大家看清楚问题,再多多帮忙
      

  5.   

    其实我想问的就是:编译器是根据什么规则为某一个属性生成对应的get set方法的?我要的就是这个方法名的生成规则。就是这么简单,远远没有大家说的那么复杂了
      

  6.   

    你读excel生成hibernate的配置文件不就行了?何必自己再写一套?自己写一套累死,还没别人写的全.
      

  7.   

    可是我不想用那些 hibernate 插件生成的 model 啊更何况我还有一套自己写的 DAO, 也要用到 model 的这个model的方式和hibernate的更是不一样写这个东西具有共通性的,可以自动生成 form bean 等等其实最重要的不是用谁生成的问题我主要想自动往生成的文件里加注释(每个属性表达的意义)这样其他人写程序时可以省下很多力气
    其实这个和 tanghan 的 hibernate 插件差不多只是考虑的可能没有他们多,但是可以个性化自己需要的功能例如可以生成form bean 加注释等等,而且自己有代码可以随时扩展而且现在功能就差这个了,我不会放弃的啊希望大家提点有建设性的意见 :-)
      

  8.   

    我好象明白你意思了。getter、setter都是按照javaBean的规则。public return-type getFirstfield(){ retuen firstfield;}
    public void setFirstfield(field-type s){firstfield =s; }大致如此吧。
      

  9.   

    是啊哥们,你问的是规则,并没有问办法呀?呵呵……按照你的意思,是要自己写一段生成代码的程序,可以写一个类,这个类里光有getter和setter(由你的程序生成,假设类名是GettersAndSetters),然后再把对数据其它的操作写到另一个类,并继承GettersAndSetters,也许能保证你重新生成GettersAndSetters时,不会对其它操作造成影响,或许要反过来继承,就是把GettersAndSetters做这子类,把连接数据库的操作写到父类里。也许这个想法是错误的,因为我没干过这事呀,呵呵。
      

  10.   

    //属性
    String name;getter方法生成的例子如下:
    public String getName(){
        return name;
    }
    生成规则:
       1、方法返回值类型为属性类型,如上为String
       2、方法名生成为get + 第一个字母大写的属性名,如getName,其中属性名name的第一个字母为大写。
       3、方法体中的代码为:  return 属性名;setter方法例子如下:
    public void setName(String name){
        this.name = name;
    }
    生成规则:
        1、返回值类型为void
        2、方法名为:set+第一个字母大写了的属性名
        3、形参和属性声明一致
        4、方法体代码为: this.属性名 = 属性名;
    ps:不过你的想法很多类库可以实现的。
    参看我的blog:http://blog.csdn.net/mailbomb   里面的《面向表格编程的力量》一文。
      

  11.   

    看来你已经做很久了,我还以为你刚开始。我也赞同你的想法。我认为实用型的个性化确实比使用别人写的东西重要。而且别人写的东西,也因为含有其他功能而效率比较低。不过我的项目组长就喜欢外来的咚咚:(((我也有自己的代码生成工具,而且可以自己配置模板,咔咔。至于那个setter和getter,并不是单独就是javabean的规则,那是对象标准化组织在n年前早就定了的,vb 6.0和vc 6.0都有用过setter和getter。他的规定就是,只要是属性,就一定要声明成private,也必须要有setter和getter。所以只要是属性,你就放心大胆的给它加setter和getter。当然这个规定有反对也有赞成。各种对象社团持不同意见。人就喜欢把属性写成public(比如我:D, 当然我还是会加setter和getter)。也有人虽然写成private,但是会根据自己的配置定义,选择要不要加setter或者getter,比如有时只写了getter但不写setter。
      

  12.   

    trumplet(检查) : 现在你说的我倒是不理解了Mailbomb(网络咖啡) :你说的是对的,但这是最简单的情况,如果属性有 _ 或者第一个字母本身就大写等等特殊情况就很难说了,我按照这种方法写的,后来出错了,找了很久才找到的。这肯定有一套规则的,绝对不可能这么简单的。cm4ever(小P) :我就是想要这套规则,但是说了这么久,还是没人给出 :-(lliei(cc) :老兄,你跟我写的一样,但是这是最简单的情况,我从开始就在说这个问题了,碰到复杂的属性名肯定会出错的。
      

  13.   

    思考了一下,在这里发现sun作了一个英明的决定,在它定义的java code conventions和java code standard中,规定所有属性名都应该是小写字母开头。我也一直用这种方式编程。
      

  14.   

    to 楼上:
           为什么不想想无论什么样的属性名用编译器生成get set方法都是对的呢
           (我只用过 intellij 和 eclipse ,不过我想jb也肯定有这个功能的)       编译器生成这些代码时,也无非就是遵照某种规则而已       你说的情况,就算我们都可以按照这种标准编程,但是我们不能保证别人都按照这种标准编程啊
           更何况就算你按照这种标准编程,可是属性变量命名也绝不是首字母是不是大小写这么简单的
           同样会有其他类型的名字不符合我们的要求       所以想着从外围解决这个问题并不是根本解决,一定要找到这种规则
      

  15.   

    一个快捷的方法,是去阅读hibernate的代码。我则想去sun搜索一下,他应该定了规范。不过对于规则存在的意义是,尽量简单化。你无需关注编码的细节,而是关注于功能。如果一个新进员工需要花上好几个月熟悉公司的编码规则的话,成本实在太高。在国外各种成功的开源项目中,命名规则都是按照上面两种,难道他们的代码量还没有我们写的一个mis系统代码量大?
      

  16.   

    hibernate 估计没有struts 的我现在在看,可是他们的PropertyUtils有点门道但是实现方式跟我理解的也不一样看来只有sun了就是搜不到才来这里问呐看你一颗星比我一个三角厉害多了帮帮忙,送你200分,呵呵……
      

  17.   

    所以我在找 sun 的规则,而不是我们自己定义规则啊
      

  18.   

    惭愧,我那点分是靠坑蒙拐骗搞来的。API Specifications
    JavaBeans Spec
    http://java.sun.com/products/javabeans/docs/spec.html但是非常遗憾的,sun并未规定有关属性起名的规则。也就是说,它不限制javabean中属性的名字。因此,是否支持某种特殊属性名(比如String _attr)的setter/getter,要看web server(tomcat/weblogic/websphere/etc.)是否支持。这个观点来自于sun的论坛的一篇帖子的最后一个回复
    http://forum.java.sun.com/thread.jsp?forum=31&thread=491174看来,要知道某个web server支持什么样的setter/getter,看来要写e-mail询问或者看源码了。p.s. 当我用power designer建立一个oom,将类的属性名设定为_Attr,并让power designer自动生成setter/getter的时候,它生成setAttr()/getAttr()。
      

  19.   

    cm4ever(小P):多谢你啦我说的前面加 _ 只能算是一个特例,还有很多呢,所以我不得不找到这种规则
    还有例如变量是 boolean 型,自动生成的get方法就是 isXXX()我的想法是jdk里应该有一个方法,可以根据属性名及其类型返回对应的方法名
    这样就不用关心内部实现的规则了
    但是我找了很久也没找到 Class Constructor Method Field 等等好像都没有一些其他jar包的copyProperties方法的实现方式好像又不是这样的??? 要知道某个web server支持什么样的setter/getter,看来要写e-mail询问或者看源码了。
    应该是什么的都能支持的,否则即是连变量名都不对的,编译都不会通过的也不知道那帮写插件的家伙怎么搞得?!再等一天,再解决不了就结帖了 :-(
      

  20.   

    可能对象标准化组织的网站有这个规范,然后web server厂商遵守这个规范开发产品。唔,这个组织的网站没去过,当年看com的书籍时了解到有这个组织的。有空我去搜搜。看来找到这个规范还是有些意义。p.s. 在power designer中,如果是java语言,对于_Attr则生成setAttr()/getAttr(),但如果是C++,则生成set_Attr()/get_Attr()
    ......