zzeng

zzeng

2005年9月29日 #

Hibernate取得Select的值

http://www.hibernate.org/hib_docs/reference/zh-cn/html/queryhql.html#queryhql-select

查询可以返回任何值类型的函数,

select子句选择在结果集中返回哪些对象和属性。思考一下下面的例子:

select mate 
from eg.Cat as cat
inner join cat.mate as mate

这个查询会选择出作为其它猫(Cat)朋友(mate)的那些猫。当然,你可以更加直接的写成下面的形式:

select cat.mate from eg.Cat cat

你甚至可以选择集合元素,使用特殊的elements功能。下面的查询返回所有猫的小猫。

select elements(cat.kittens) from eg.Cat cat

查询可以返回任何值类型的属性,包括组件类型的属性:

select cat.name from eg.DomesticCat cat
where cat.name like 'fri%'

select cust.name.firstName from Customer as cust

查询可以用元素类型是Object[]的一个数组返回多个对象和/或多个属性。

select mother, offspr, mate.name 
from eg.DomesticCat as mother
inner join mother.mate as mate
left outer join mother.kittens as offspr

或者实际上是类型安全的Java对象

select new Family(mother, mate, offspr)
from eg.DomesticCat as mother
join mother.mate as mate
left join mother.kittens as offspr

上面的代码假定Family有一个合适的构造函数。


posted @ 2005-12-18 10:39 zzeng 阅读(1532) | 评论 (0)编辑 收藏

BCP

                    
    1.BCPの引数    

        bcp ユーティリティは、ユーザーが指定した形式で、データを Microsoft® SQL Server™ 2000 とデータ ファイルとの間でコピーします。

        構文
        bcp {[[database_name.][owner].]{table_name | view_name} | "query"}
            {in | out | queryout | format} data_file
            [-m max_errors] [-f format_file] [-e err_file]
            [-F first_row] [-L last_row] [-b batch_size]
            [-n] [-c] [-w] [-N] [-V (60 | 65 | 70)] [-6]
            [-q] [-C code_page] [-t field_term] [-r row_term]
            [-i input_file] [-o output_file] [-a packet_size]
            [-S server_name[\instance_name]] [-U login_id] [-P password]
            [-T] [-v] [-R] [-k] [-E] [-h "hint [,...n]"]


        使用法 : bcp {dbtable | query} {in | out | queryout | format} datafile    
          [-m maxerrors]            [-f formatfile]          [-e errfile]    
          [-F firstrow]             [-L lastrow]             [-b batchsize]    
          [-n native type]          [-c character type]      [-w wide character type]    
          [-N keep non-text native] [-V file format version] [-q quoted identifier]    
          [-C code page specifier]  [-t field terminator]    [-r row terminator]    
          [-i inputfile]            [-o outfile]             [-a packetsize]    
          [-S server name]          [-U username]            [-P password]    
          [-T trusted connection]   [-v version]             [-R regional enable]    
          [-k keep null values]     [-E keep identity values]    
          [-h "load hints"]    


        大切な引数の説明:    
        ①    [-S server name]
                -S server_name[\instance_name]
                接続先の SQL Server のインスタンスを指定します。
                サーバー上の SQL Server の既定のインスタンスに接続する場合は、server_name を指定します。
                サーバー上の SQL Server 2000 の名前付きインスタンスに接続する場合は、server_name\instance_name
                を指定します。サーバーが指定されない場合は、ローカル コンピュータ上の SQL Server の既定の
                インスタンスに接続されます。ネットワーク上のリモート コンピュータから bcp を実行するときは、このオプションが必要です。

        ②    [-U username]    
                -U login_id
                SQL Server への接続に使用されるログイン ID を指定します。

        ③    [-P password]    
                -P password
                ログイン ID のパスワードを指定します。このオプションを指定しないと、bcp はパスワードを問い合わせます。
                また、このオプションをコマンド プロンプトの最後にパスワードなしで使用すると、デフォルトのパスワード (NULL) が使用されます。

        ④    {in | out | queryout | format} datafile        
                in | out | queryout | format    
                一括コピーする方向を指定します。    
                in は、ファイルからデータベース テーブルまたはビューにコピーします。    
                out は、データベース テーブルまたはビューからファイルにコピーします。    
                queryout は、クエリからデータの一括コピーを行う場合に指定します。    
                format オプションは、指定したオプション (-n、-c、-w、-6、-N のいずれか) とテーブルまたはビューの区切り記号に    
                基づいてフォーマット ファイルを作成します。format を使用する場合、-f オプションも指定する必要があります。    
                注  Microsoft SQL Server 6.5 の bcp ユーティリティの場合、sql_variant 型または bigint 型のデータを含む    
                     テーブルへの一括コピーはサポートされません。

        ⑤     [-c character type]         

    2.例                
        setEnv.cmdの内容:            
            set DBUSER=lamsec        
            set DBPASSWORD=lamsec
            set DBSERVER=lam-test-server

        入力のコマンドファイルの内容:    
            call setEnv.cmd
            bcp tempdb..custom IN F:\bcp\CZYTAB.TXT -U%DBUSER% -P%DBPASSWORD% -S%DBSERVER% -c

        出力コマンドファイルの内容:    
            call setEnv.cmd
            bcp tempdb..custom OUT F:\bcp\CZYTAB.TXT -U%DBUSER% -P%DBPASSWORD% -S%DBSERVER% -c

posted @ 2005-09-29 13:47 zzeng 阅读(1045) | 评论 (0)编辑 收藏

刚刚遇到的版本问题

开始Tomcat用的是mail.jar的1.3.1的版本,但是单独跑的时候用的1.3.3的版本
结果就不一样了:S

posted @ 2005-09-29 12:55 zzeng 阅读(272) | 评论 (0)编辑 收藏

用javamail进行认证发信

当今mail服务器大多都是通过认证才能发信的,现在的网上介绍javamail发信的文章都没有深入到有关认证的方面,除非自己装一个open  relay的mail服务器,但是这样有很危险,本人根据自己工作中用的javamail的方法说一下自己的用法,不对的地方请大家多指教.
  首先设置属性Properties props = new Properties();
props.put("mail.smtp.host",host);
props.put("mail.smtp.auth","true");注意的是此处必须加上true要不然stmp连接的时候不会认证
  用Authenticator写认证类下面是本人的认证类
package org.xxx;
import javax.mail.*;
import javax.mail.internet.*;
public class PopupAuthenticator extends Authenticator{
String username=null;
String password=null;
public PopupAuthenticator(){}
public PasswordAuthentication performCheck(String user,String pass){
username = user;
password = pass;
return getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}

}
认证类写完后,在发信的程序中加上
PasswordAuthentication pop = popAuthenticator.performCheck(username,password);
Session mysession=Session.getInstance(props,popAuthenticator);
mailsession加的popAuthenticator
其他的方法和javamail发信的用法相似,在此不累述。


http://www.cn-java.com/target/news.php?news_id=1511

posted @ 2005-09-29 10:14 zzeng 阅读(280) | 评论 (0)编辑 收藏