梦开始的地方

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  4 随笔 :: 0 文章 :: 3 评论 :: 0 Trackbacks

2006年9月20日 #

 Hibernate 的 一对一因映射关系,one-to-one的配置,有一些疑问
 举例说明
   Person.java
  class Person{
  private Mark mark;
  private int personId;
  private name;
 //get 和 set 方法深省略

}
  
 Mark.java
class Mark{
private int markid;
private Person;
//get和 set方法省略
}
//映射文件
Person.hbm.xml
<class name="test.Person" table="person">
 <id name="personId" type="integer">
            <column name="personId" />
            <generator class="increment" />
    </id>
<one-to-one name="address" class="test.Mark" cascade="save-update" />
</class>


Mark.hbm.xml
<class name="test.Mark" table="mark">
  <id name="markId" type="integer">
            <column name="addressId" />
            <generator class="increment" />
  </id>
<one-to-one name="address" class="test.Person" />
</class>

我的需求是:
增加或者修改表person表时,同时更新表mark表内容,而且不使用共享主键,每个表都有独立的主键,我这样配置时,始终报错,希望高手指点~在线等
posted @ 2006-10-17 18:42 Dushengjun 阅读(357) | 评论 (0)编辑 收藏

       在使用windows系统时,我们会发现,一种类型的文件总是可以用指定的应用程序打开,如:doc文件,双击可以打开文件,在使用delphi开发应用程序时,同样需要实现上边的功能,其核心就获取系统当前的文件,而ParamStr函数起到了非常重要的作用,先面我们简单用 Delphi开发以个应用程序来说明问题:
首先,用 delphi新建立一个工程,然后分别创建窗体MainFrm,MyMDIChildForm,添加相应的控件,如下图

            
                                           MainFrm

               
                                            MyMDIChildForm



代码如下:
Unit1.pas(对应于MainFrm窗体)
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus,Unit2, ComCtrls;

type
  TMainFrm = class(TForm)
    MainMenu1: TMainMenu;
    ItemNew: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    OpenDialog1: TOpenDialog;
    StatusBar1: TStatusBar;
    procedure ItemNewClick(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    function CreateMDI():TMyMDIChildForm;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainFrm: TMainFrm;

implementation


{$R *.dfm}

procedure TMainFrm.ItemNewClick(Sender: TObject);
var
child: TMyMDIChildForm;
begin
 child:= TMyMDIChildForm.create(Self);
end;

procedure TMainFrm.N3Click(Sender: TObject);

begin
  if opendialog1.Execute then
   begin

      CreateMDI.RichEdit1.Lines.LoadFromFile(opendialog1.FileName);
      Self.StatusBar1.Panels[1].Text:=opendialog1.FileName;
   end;

end;

procedure TMainFrm.FormShow(Sender: TObject);
var
 FileName:String;
begin
   FileName:=ParamStr(1);
   if FileExists(FileName) then
    begin
      CreateMDI.RichEdit1.Lines.LoadFromFile(FileName);
    end;
end;

 

function TMainFrm.CreateMDI: TMyMDIChildForm;
var
child: TMyMDIChildForm;
begin
    child:= TMyMDIChildForm.create(Self);
    Result:=child;
end;

end.
unit2.pas(对应于MyMDIChildForm窗体)
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TMyMDIChildForm = class(TForm)
    RichEdit1: TRichEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MyMDIChildForm: TMyMDIChildForm;

implementation

{$R *.dfm}

procedure TMyMDIChildForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 Action:=caFree;
end;

end.
这样我们实现了一个简单的记事本程序,运行结果如下图:


              


然后,我们将工程保存,并生成最终的EXE文件,然后我们在Windows系统目录任意创建一个文件,
如下图ResumeAction.java文件

                         

然后将它的打开方式设置成我们自己的可执行程序
                                   

然后再双击此文件,程序正确运行,并将它打开了!
            

程序的核心就是paramStr函数,它获得了系统接口,得到了当前的文件名称!

点击下载

posted @ 2006-09-20 22:00 Dushengjun 阅读(592) | 评论 (0)编辑 收藏