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

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

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

    夢(mèng)開(kāi)始的地方

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      4 隨筆 :: 0 文章 :: 3 評(píng)論 :: 0 Trackbacks

    2006年10月17日 #

     Hibernate 的 一對(duì)一因映射關(guān)系,one-to-one的配置,有一些疑問(wèn)
     舉例說(shuō)明
    ?? 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表時(shí),同時(shí)更新表mark表內(nèi)容,而且不使用共享主鍵,每個(gè)表都有獨(dú)立的主鍵,我這樣配置時(shí),始終報(bào)錯(cuò),希望高手指點(diǎn)~在線等
    posted @ 2006-10-17 18:42 Dushengjun 閱讀(365) | 評(píng)論 (0)編輯 收藏

    2006年9月20日 #

    ?????? 在使用windows系統(tǒng)時(shí),我們會(huì)發(fā)現(xiàn),一種類(lèi)型的文件總是可以用指定的應(yīng)用程序打開(kāi),如:doc文件,雙擊可以打開(kāi)文件,在使用delphi開(kāi)發(fā)應(yīng)用程序時(shí),同樣需要實(shí)現(xiàn)上邊的功能,其核心就獲取系統(tǒng)當(dāng)前的文件,而ParamStr函數(shù)起到了非常重要的作用,先面我們簡(jiǎn)單用 Delphi開(kāi)發(fā)以個(gè)應(yīng)用程序來(lái)說(shuō)明問(wèn)題:
    首先,用 delphi新建立一個(gè)工程,然后分別創(chuàng)建窗體MainFrm,MyMDIChildForm,添加相應(yīng)的控件,如下圖

    ?????????? ?
    ?????????????????????????????????????? ??? MainFrm

    ???????????????
    ????????????????????????????????????????? ? MyMDIChildForm



    代碼如下:
    Unit1.pas(對(duì)應(yīng)于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(對(duì)應(yīng)于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.
    這樣我們實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的記事本程序,運(yùn)行結(jié)果如下圖:


    ??????????????


    然后,我們將工程保存,并生成最終的EXE文件,然后我們?cè)赪indows系統(tǒng)目錄任意創(chuàng)建一個(gè)文件,
    如下圖ResumeAction.java文件

    ?????????????????????????

    然后將它的打開(kāi)方式設(shè)置成我們自己的可執(zhí)行程序
    ???????????????????????????????????

    然后再雙擊此文件,程序正確運(yùn)行,并將它打開(kāi)了!
    ????????????

    程序的核心就是paramStr函數(shù),它獲得了系統(tǒng)接口,得到了當(dāng)前的文件名稱!

    點(diǎn)擊下載

    posted @ 2006-09-20 22:00 Dushengjun 閱讀(602) | 評(píng)論 (0)編輯 收藏

    2006年9月11日 #

    ?????? Spring是當(dāng)前比較流行的基于Java語(yǔ)言的MVC框架,所謂框架也就是它已經(jīng)實(shí)現(xiàn)好了諸多東西,使java開(kāi)發(fā)人員能把精力盡量放在業(yè)務(wù)邏輯上.
    ?????? Spring技術(shù)的特點(diǎn)是IOC, 即反向注入,主要應(yīng)用的是XML技術(shù)和POJO(簡(jiǎn)單Java對(duì)象),Spring要達(dá)到的目的其實(shí)很簡(jiǎn)單,就是盡量簡(jiǎn)化原來(lái)Java中的地層數(shù)據(jù)訪問(wèn)的問(wèn)題,眾所周知,傳統(tǒng)的使用Java訪問(wèn)地層數(shù)據(jù)庫(kù)的方法是使用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);
    ???????? //實(shí)現(xiàn)業(yè)務(wù)邏輯的代碼
    ???????????????????System.out.println("產(chǎn)生異常:"+e);
    ????????? }
    可以看到為了訪問(wèn)數(shù)據(jù)庫(kù),我們需要這么多多余的模式的代碼,而且又要拋出不同的異常,代碼可維護(hù)性比較差,而且不利于開(kāi)發(fā)人員把精力投放到最終的業(yè)務(wù)邏輯上.上邊的功能如果選擇使用Spring實(shí)現(xiàn),那就變得的非常簡(jiǎn)單了:
    ??<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文件,然后在真正使用數(shù)據(jù)庫(kù)時(shí),用
    ????? ApplicationContext?? ctx=new?? FileSystemXmlApplicationContext("beans.xml");
    ??????? DriverManagerDataSource ds=(DriverManagerDataSource)ctx.getBean("datasource");
    兩條語(yǔ)句完成數(shù)據(jù)源的獲得,這就簡(jiǎn)化掉了相當(dāng)多的模式代碼,讓我們更加關(guān)心業(yè)務(wù)邏輯的實(shí)現(xiàn)了~?
    ?????
    posted @ 2006-09-11 13:16 Dushengjun 閱讀(951) | 評(píng)論 (3)編輯 收藏

    2006年9月7日 #

    ??? 最近兩天,很巧,又寫(xiě)delphi的電子郵件客戶端,還寫(xiě)了Java的電子郵件發(fā)送的小程序,一個(gè)是工作需要,另一個(gè)則是幫朋友的忙,有點(diǎn)巧.
    1.Java的電子有件發(fā)送程序
    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); //得到一個(gè)發(fā)送郵件的會(huì)話
    ?????????
    ????????? 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("郵件以成功發(fā)送到dushengjun@gmail.com");
    ?????????? transport.close();
    ?????????? return true;
    ????????? }catch(Exception e)
    ????????? {
    ????????????? System.out.println("產(chǎn)生異常:"+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("正在準(zhǔn)備發(fā)送.....");
    ?????? 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("發(fā)送成功");
    ?????? else
    ?????????? System.out.println("發(fā)送失敗");
    ??? }
    }
    同時(shí)將如下的包加到classpath中:
    activation.jar,dsn.jar,imap.jar,mailapi.jar,pop3.jar,smtp.jar
    可以測(cè)試了,運(yùn)行一下JavaMailApp 吧
    ?
    2.Delphi的電子郵件客戶端實(shí)現(xiàn)
    ?
    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) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題  
    主站蜘蛛池模板: 精品久久久久久久久免费影院| 免费在线观看亚洲| 亚洲人成网站色在线观看| 成人永久免费高清| 两个人看的www免费| 亚洲最大的黄色网| 亚洲偷自拍拍综合网| 最近免费中文字幕mv电影| 亚洲AV无码成人精品区狼人影院| ZZIJZZIJ亚洲日本少妇JIZJIZ| 日本免费网站视频www区| 婷婷亚洲综合五月天小说在线| 亚洲AV综合色区无码另类小说| 成年女人毛片免费视频| 久草免费福利视频| 亚洲爆乳成av人在线视菜奈实| 亚洲av日韩av高潮潮喷无码| 真实乱视频国产免费观看| 国产婷婷成人久久Av免费高清| 国产成人精品日本亚洲网址 | 四虎精品视频在线永久免费观看| 337p日本欧洲亚洲大胆人人 | 亚洲AV永久青草无码精品| 毛片免费视频播放| 国产成人精品无码免费看 | 5g影院5g天天爽永久免费影院| 羞羞网站免费观看| 亚洲一区二区三区免费在线观看| 国产美女亚洲精品久久久综合| 在线免费观看色片| 亚洲免费在线视频播放| xxxx日本在线播放免费不卡| 亚洲人成网站999久久久综合| 内射干少妇亚洲69XXX| 自拍偷自拍亚洲精品第1页| 国产精品久免费的黄网站| 久久精品国产亚洲Aⅴ香蕉 | 亚洲午夜久久久久久噜噜噜| 国产大片免费观看中文字幕| 噼里啪啦免费观看高清动漫4| 无码少妇精品一区二区免费动态|