<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢開始的地方

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      4 隨筆 :: 0 文章 :: 3 評論 :: 0 Trackbacks

    2006年9月7日 #

     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 閱讀(364) | 評論 (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 閱讀(602) | 評論 (0)編輯 收藏

    ?????? Spring是當前比較流行的基于Java語言的MVC框架,所謂框架也就是它已經實現好了諸多東西,使java開發人員能把精力盡量放在業務邏輯上.
    ?????? Spring技術的特點是IOC, 即反向注入,主要應用的是XML技術和POJO(簡單Java對象),Spring要達到的目的其實很簡單,就是盡量簡化原來Java中的地層數據訪問的問題,眾所周知,傳統的使用Java訪問地層數據庫的方法是使用JDBC,如下的代碼:
    ?? try{
    ?????? }catch(SQLException e){
    ?????????????????? Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");/以MS SQL SERVER為例
    ?????????????????? Connection conn=DriverManager.getConnection(connurl,username,password);
    ???????????????? ? Statement stmt=conn.createStatement();
    ??????????????? ? ?ResultSet rs=stmt.executeQuery(sql);
    ???????? //實現業務邏輯的代碼
    ???????????????????System.out.println("產生異常:"+e);
    ????????? }
    可以看到為了訪問數據庫,我們需要這么多多余的模式的代碼,而且又要拋出不同的異常,代碼可維護性比較差,而且不利于開發人員把精力投放到最終的業務邏輯上.上邊的功能如果選擇使用Spring實現,那就變得的非常簡單了:
    ??<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    ??<property name="url" value="${database.url}"></property>
    ??<property name="driverClassName" value="${database.driver}"></property>
    ??<property name="username" value="${database.user}"></property>
    ??<property name="password" value="${database.password}"></property>
    ?</bean>??
    我們只需要培植上文的XML文件,然后在真正使用數據庫時,用
    ????? ApplicationContext?? ctx=new?? FileSystemXmlApplicationContext("beans.xml");
    ??????? DriverManagerDataSource ds=(DriverManagerDataSource)ctx.getBean("datasource");
    兩條語句完成數據源的獲得,這就簡化掉了相當多的模式代碼,讓我們更加關心業務邏輯的實現了~?
    ?????
    posted @ 2006-09-11 13:16 Dushengjun 閱讀(949) | 評論 (3)編輯 收藏

    ??? 最近兩天,很巧,又寫delphi的電子郵件客戶端,還寫了Java的電子郵件發送的小程序,一個是工作需要,另一個則是幫朋友的忙,有點巧.
    1.Java的電子有件發送程序
    SendMailBean.java
    package adu.com.kingsoft;
    import java.util.Date;
    import java.util.Properties;
    import javax.mail.Message;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    public class SendMailBean {
    ??? private String form;
    ??? private String to;
    ??? private String hostName;
    ??? private String port;
    ??? private String userName;
    ??? private String password;
    ??? private String subject;
    ??? private String body;
    ??? public String getBody() {
    ??????? return body;
    ??? }
    ??? public void setBody(String body) {
    ??????? this.body = body;
    ??? }
    ??? public String getSubject() {
    ??????? return subject;
    ??? }
    ??? public void setSubject(String subject) {
    ??????? this.subject = subject;
    ??? }
    ??? public String getForm() {
    ??????? return form;
    ??? }
    ??? public void setForm(String form) {
    ??????? this.form = form;
    ??? }
    ??? public String getHostName() {
    ??????? return hostName;
    ??? }
    ??? public void setHostName(String hostName) {
    ??????? this.hostName = hostName;
    ??? }
    ??? public String getPassword() {
    ??????? return password;
    ??? }
    ??? public void setPassword(String password) {
    ??????? this.password = password;
    ??? }
    ??? public String getPort() {
    ??????? return port;
    ??? }
    ??? public void setPort(String port) {
    ??????? this.port = port;
    ??? }
    ??? public String getTo() {
    ??????? return to;
    ??? }
    ??? public void setTo(String to) {
    ??????? this.to = to;
    ??? }
    ??? public String getUserName() {
    ??????? return userName;
    ??? }
    ??? public void setUserName(String userName) {
    ??????? this.userName = userName;
    ??? }
    ??? public boolean sendMail(){
    ????????? Properties props=new Properties();
    ??????? //? props.put("mail.smtp.protocol","smtp");
    ????????? props.put("mail.smtp.host",hostName);
    ????????? props.put("mail.smtp.auth","true");
    ????????? props.put("mail.smpt.port",port);????
    ????????? Session mailsession=Session.getInstance(props,null); //得到一個發送郵件的會話
    ?????????
    ????????? Message msg=new MimeMessage(mailsession);
    ????????? try{
    ?????????? msg.setFrom(new InternetAddress(this.getForm()));
    ?????????? msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(this.getTo()));
    ?????????? msg.setSubject(this.getSubject());
    ?????????? msg.setSentDate(new Date());
    ?????????? msg.setText(this.getBody());
    ?????????? Transport transport = mailsession.getTransport("smtp");
    ?????????? transport.connect(this.getHostName(),this.getUserName(),this.getPassword());
    ?????????? transport.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO));
    ????????? // System.out.println("郵件以成功發送到dushengjun@gmail.com");
    ?????????? transport.close();
    ?????????? return true;
    ????????? }catch(Exception e)
    ????????? {
    ????????????? System.out.println("產生異常:"+e);
    ????????????? return false;
    ????????? }
    ??? }
    }
    ?
    JavaMailApp .java
    package adu.com.kingsoft;
    import java.util.Date;
    import java.util.Properties;
    public class JavaMailApp {
    ???
    ??? /**
    ???? * @param args
    ???? */
    ??? public static void main(String[] args) {
    ?????? System.out.println("正在準備發送.....");
    ?????? SendMailBean smb=new SendMailBean();
    ?????? smb.setUserName("dushengjun");
    ?????? smb.setForm("dushengjun@kingsoft.net");
    ?????? smb.setHostName("mail.kingsoft.net");
    ?????? smb.setPassword("***************");
    ?????? smb.setPort("25");
    ?????? smb.setTo("dushengjun@gmail.com");
    ?????? smb.setSubject("你好");
    ?????? smb.setBody("你好 Java");
    ?????? if(smb.sendMail())
    ?????? System.out.println("發送成功");
    ?????? else
    ?????????? System.out.println("發送失敗");
    ??? }
    }
    同時將如下的包加到classpath中:
    activation.jar,dsn.jar,imap.jar,mailapi.jar,pop3.jar,smtp.jar
    可以測試了,運行一下JavaMailApp 吧
    ?
    2.Delphi的電子郵件客戶端實現
    ?
    unit Unit1;
    interface
    uses
    ? Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    ? Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
    ? IdTCPClient, IdMessageClient, IdSMTP, IdMessage, ComCtrls;
    type
    ? TForm1 = class(TForm)
    ??? idSMTP: TIdSMTP;
    ??? Button1: TButton;
    ??? idMessage: TIdMessage;
    ??? letter_subject: TEdit;
    ??? me_content: TRichEdit;
    ??? Label1: TLabel;
    ??? Label2: TLabel;
    ??? Label3: TLabel;
    ??? receiver_address: TEdit;
    ??? Label4: TLabel;
    ??? me_address: TEdit;
    ??? me_pwd: TLabel;
    ??? mypassword: TEdit;
    ??? Label5: TLabel;
    ??? me_port: TEdit;
    ??? myHostName: TEdit;
    ??? Label6: TLabel;
    ??? Edit1: TEdit;
    ??? Label7: TLabel;
    ??? Button2: TButton;
    ??? OpenDialog1: TOpenDialog;
    ??? procedure Button1Click(Sender: TObject);
    ??? procedure Button2Click(Sender: TObject);
    ? private
    ??? { Private declarations }
    ? public
    ??? { Public declarations }
    ? end;
    var
    ? Form1: TForm1;
    implementation
    {$R *.dfm}
    procedure?? TForm1.Button1Click(Sender:?? TObject);
    var
    ?subject?????????? :String;
    ?rec_address?????? :String;
    ?self_address????? :String;
    ?password????????? :String;
    ?content?????????? :String;
    ?port????????????? :Integer;
    ?hostName????????? :String;
    begin
    subject:=letter_subject.Text;
    rec_address:=receiver_address.Text;
    self_address:=me_address.Text;
    port:=StrToInt(me_port.Text);
    password:=mypassword.text;
    hostName:=myHostName.Text;
    content:=me_content.text;
    ????? if idMessage?? =?? NIL??? then
    ????????? idMessage.Create(Form1);??
    ????? if idSMTP=NIL?? then
    ????????? idSMTP.Create(Form1);
    ??????? TIdAttachment.Create(IdMessage.MessageParts,edit1.Text);
    ?????? IdMessage.Body.Assign(me_content.lines);
    ?????? IdMessage.From.Text := self_address;
    ?????? IdMessage.ReplyTo.EMailAddresses := self_address;
    ?????? IdMessage.Recipients.EMailAddresses := rec_address;
    ?????? IdMessage.Subject := subject;
    ????? idSMTP.AuthenticationType?? :=?? atLogin;
    ???? // idSMTP.AuthenticationType:=atNone;
    ????? idSMTP.Username?? :=?? self_address;
    ????? idSMTP.Password?? :=?? password;
    ????? idSMTP.Host?????????? :=hostName;
    ????? idSMTP.Port?????????? :=?? port;
    ????? try
    ????????? idSMTP.Connect;
    ????????? idSMTP.Send(idMessage);
    ???????? //idSMTP.DisconnectSocket;
    ????????? idSMTP.Disconnect;
    ????????? //idSMTP.Destroy;
    ????????? showmessage('send?? mail?? ok');
    ????? except
    ????????? //idSMTP.Destroy;
    ????????? //idMessage.Destroy;??
    ????????? showmessage('mail?? send?? false');??
    ????? end;??
    ? end;
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    ?if(openDialog1.Execute) then
    ? begin
    ?? Edit1.Text:=opendialog1.FileName;
    ? end;
    end;
    end.
    ?

    ?
    posted @ 2006-09-07 12:39 Dushengjun 閱讀(300) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 成人午夜视频免费| 中文字幕亚洲电影| 蜜臀91精品国产免费观看| 内射无码专区久久亚洲| 亚洲Av无码精品色午夜 | 久久精品免费一区二区喷潮| 日产国产精品亚洲系列| 国产精品亚洲专区无码唯爱网 | 黄网站在线播放视频免费观看| 特级精品毛片免费观看| 免费在线观看中文字幕| 亚洲国产日韩在线成人蜜芽| 99视频免费在线观看| 又粗又大又猛又爽免费视频| 国产精品亚洲一区二区三区在线观看| 久久精品视频免费播放| 亚洲性在线看高清h片| 亚洲精品无码成人| 曰批视频免费40分钟试看天天| 亚洲V无码一区二区三区四区观看| 国产羞羞的视频在线观看免费| 亚洲七七久久精品中文国产| 色欲aⅴ亚洲情无码AV蜜桃| 1000部啪啪未满十八勿入免费| 亚洲不卡在线观看| 四虎成年永久免费网站| 亚洲AV无码国产精品麻豆天美| 在线观看免费中文视频| 亚洲欧洲日产国码久在线观看| 男人天堂免费视频| 亚洲精品免费在线| 亚洲人成免费电影| 亚洲欧美在线x视频| 亚洲欧洲成人精品香蕉网| 久久免费香蕉视频| 国产成人亚洲精品狼色在线| 国产免费内射又粗又爽密桃视频| 久久精品国产亚洲AV嫖农村妇女| 久久午夜夜伦鲁鲁片无码免费| 亚洲欧洲日本在线观看| 午夜免费福利在线观看|