??xml version="1.0" encoding="utf-8" standalone="yes"?>绯色av一区,99riav视频在线观看,91高清在线观看http://www.aygfsteel.com/zuofei-bie/category/44379.htmljava and phpzh-cnThu, 24 Mar 2011 17:01:35 GMTThu, 24 Mar 2011 17:01:35 GMT60在Linux上部|Apache Jameshttp://www.aygfsteel.com/zuofei-bie/archive/2011/03/24/346980.html别昨?/dc:creator>别昨?/author>Thu, 24 Mar 2011 12:35:00 GMThttp://www.aygfsteel.com/zuofei-bie/archive/2011/03/24/346980.htmlhttp://www.aygfsteel.com/zuofei-bie/comments/346980.htmlhttp://www.aygfsteel.com/zuofei-bie/archive/2011/03/24/346980.html#Feedback0http://www.aygfsteel.com/zuofei-bie/comments/commentRss/346980.htmlhttp://www.aygfsteel.com/zuofei-bie/services/trackbacks/346980.html  ׃目需要部|在Linux上,而又使用到Apache James作邮件服务器Q因此ȝ了一下在Linux上部|Apache James的步骤,写得比较凌ؕ?/p>

在Linux上部|Apache James

前提工作Q?/p>

1Q由于Apache James邮g服务需要用?024以下的端口,因此Lroot用户dq行部v?/p>

2Q需要先安装JDK1.5或以上版本,部v前请保您的JDK环境变量如JAVA_HOME{已l设|好?/p>

3QJames 启动Ӟ其SMTP 服务默认?25 端口启动QPOP3 服务默认?110 端口启动Q?NNTP 服务默认?119 端口启动, L保这些端口未被占用。Linux下查q这些端口是否被占用的命令是Qlsof -i:端口P例如Q?/p>

[root@nhslj-app ~]# lsof -i:25

COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME

sendmail 3268 root    4u  IPv4   8650       TCP nhslj-app:smtp (LISTEN)

q表C?5端口正在被sendmail服务占用?/p>

关闭SendMail服务Q?/p>

一般RedHat的系l安装时都会默认安装了sendmail邮g服务Q因此在部vApache JamesӞ需要把sendmail关闭。可以通过以下Ҏ来关闭sendmailQ以防止pȝ重启时又自动启动sendmail服务?/p>

1Q用chkconfig --list sendmail命o查看sendmail的情况:

[root@susun177 ~]# chkconfig --list sendmail

sendmail        0:关闭  1:关闭  2:启用  3:关闭  4:启用  5:启用  6:关闭

2Q通过chkconfig sendmail off命o来关闭sendmail的启动:

[root@susun177 ~]# chkconfig sendmail off

3Q这时再用chkconfig --list sendmail命o可以查看到sendmail的所有启动别都已经关闭了:

[root@susun177 ~]# chkconfig --list sendmail

sendmail        0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

q样Q即佉K新启动LinuxpȝQsendmail服务也不会自动启动了?/p>

前期工作做完了,接下来就是部|Apache  James了?/p>

1Q解压Apache James包(apache-james-2.3.2.tar.gzQ:

[root@susun177 local]# tar zxvf apache-james-2.3.2.tar.gz

解压后,会多了一个目录james-2.3.2

2Q进入james-2.3.2/bin目录Q运行run.shQ生成james的配|文件config.xmlQ?/p>

[root@susun177 bin]# sh run.sh

run.sh: line 37: /usr/local/james-2.3.2/bin/phoenix.sh: 权限不够

权限不够Q估计是解压后run.sh文g没有赋予执行权限Q,可以执行以下命oQ?/p>

[root@susun177 bin]# chmod +x run.sh phoenix.sh

然后再次q行run.sh命oQ?/p>

[root@susun177 bin]# sh run.sh

Using PHOENIX_HOME:   /usr/local/james-2.3.2

Using PHOENIX_TMPDIR: /usr/local/james-2.3.2/temp

Using JAVA_HOME:      /usr/java/jdk1.5.0

Running Phoenix:

Phoenix 4.2

James Mail Server 2.3.2

Remote Manager Service started plain:4555

POP3 Service started plain:110

SMTP Service started plain:25

NNTP Service started plain:119

FetchMail Disabled

说明James启动成功?/p>

3Q按Ctrl + C退出JamesQ编辑config.xml文g。生成的config.xml攄?./james-2.3.2/apps/james/SAR- INF目录下。关于James的config.xml的修改,|上很多资料Q请自行查阅。在q里Q只写关键的修改Q?/p>

AQ找?lt;servernames autodetect="true" autodetectIP="true"> 设成        

         autodetect="false" autodetectIP="false"

         autodetct设ؓtrue会自动侦你的主机名,设成false会用你指定的server name?/p>

         autodetectIP设ؓtrue会ؓ你的servername加上ip?/p>

BQ设|servername 默认的为localhostҎ你的server名字 如king.cnQ?

<servername>king.cn</servername>

然后修改Linux的hostsL讄文gQ?/p>

[root@susun177 SAR-INF]# vi /etc/hosts

在打开的文件添加一行,然后保存Q?/p>

192.168.1.177           king.cn   king

注意Q第一个ؓIP地址  W二个ؓL域名  W三个ؓL名称

提示Q名字后面应该要加上.com或?cnq样163{邮件服务器才不会拒l的?/p>

CQ注释掉

         <mailet match="RemoteAddrNotInNetwork=127.0.0.1" class="ToProcessor>

             <processor> relay-denied </processor>

             <notice>550 - Requested action not taken: relaying denied</notice>

         </mailet>

DQ配|DNS ServerQ先通过netstat命o查看dns配置

[root@susun177 SAR-INF]# netstat -rn

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0

扑ֈ<dnsserver>Q在<servers>里最前面d一行: <server>192.168.1.0</server> Q?nbsp;               同时讄autodiscover为false?/p>

   <dnsserver>

      <servers>

         <!--Enter ip address of your DNS server, one IP address per server -->

         <!-- element. -->

         <!--

          <server>127.0.0.1</server>

         -->

           <server>10.168.0.10</server>         

      </servers>

      <!-- Change autodiscover to false if you would like to turn off autodiscovery -->

      <!-- and set the DNS servers manually in the <servers> section -->

      <autodiscover>false</autodiscover>

      <authoritative>false</authoritative>

      <!-- Maximum number of entries to maintain in the DNS cache -->

      <maxcachesize>50000</maxcachesize>

   </dnsserver>

EQ修改James数据库连接字W串Q?/p>

      <data-source name="maildb" class="org.apache.james.util.dbcp.JdbcDataSource">

         <driver>oracle.jdbc.driver.OracleDriver</driver>

         <dburl>jdbc:oracle:thin:@192.168.1.17:1521:hello</dburl>

         <user>hello</user>

         <password>kitty</password>

         <keep-alive>select 1 from dual</keep-alive>

         <testOnBorrow>true</testOnBorrow>

         <testOnReturn>true</testOnReturn>

         <max>50</max>

      </data-source>

以上用的是oracle数据库,如果是其他数据库Q则需要修改ؓ对应的数据库q接驱动Q以及数据库用户信息?/p>

注意Q一定要记得配置<keep-alive>Q该参数的意思是Q在使用q接池的q接之前Q是否需要验证该q接是否有效。之前,我没有设|该参数Q结果L出现收不到邮件的问题?/p>

4Q优化一下James内存Q在../james-2.3.2/bi/phoenix.sh加入Q?/p>

# Set Heap Size 2007-0818,fix OutOfMemory bug while transporting big mail

PHOENIX_JVM_OPTS="$PHOENIX_JVM_OPTS -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M"

修改../james-2.3.2/conf/wrapper.conf的jvm配置Q设|初始内?28M,最大内?12M

                   # Initial Java Heap Size (in MB)

                   #wrapper.java.initmemory=16

                   wrapper.java.initmemory=128

        

                   # Maximum Java Heap Size (in MB)

                   #wrapper.java.maxmemory=64

                   wrapper.java.maxmemory=512

5Q?复制数据库驱动到../james-2.3.2/lib目录下,我用的是oracle数据库,驱动包ؓQojdbc14.jar

6Q重启Apache James服务?/p>

7Q最后,q入邮gpȝ全局理Q将pȝ的域名改Zq的server name?/p>

8Q如无意外一切OK?/p>

]]>
最单的Map遍历的写?/title><link>http://www.aygfsteel.com/zuofei-bie/archive/2011/03/24/346922.html</link><dc:creator>别昨?/dc:creator><author>别昨?/author><pubDate>Thu, 24 Mar 2011 03:08:00 GMT</pubDate><guid>http://www.aygfsteel.com/zuofei-bie/archive/2011/03/24/346922.html</guid><wfw:comment>http://www.aygfsteel.com/zuofei-bie/comments/346922.html</wfw:comment><comments>http://www.aygfsteel.com/zuofei-bie/archive/2011/03/24/346922.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zuofei-bie/comments/commentRss/346922.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zuofei-bie/services/trackbacks/346922.html</trackback:ping><description><![CDATA[<ol class="dp-j" start="1"> <li><span><span>Map<String,String> map = </span><span id="wmqeeuq" class="keyword">new</span><span> HashMap<String,String>();  </span></span></li> <li><span><span id="wmqeeuq" class="keyword">for</span><span>(Map.Entry<String, String> entry : map.entrySet()){  </span></span></li> <li><span>    String value = entry.getValue();  </span></li> <li><span>    String key = entry.getKey();  </span></li> <li><span>}</span></li> </ol> <img src ="http://www.aygfsteel.com/zuofei-bie/aggbug/346922.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zuofei-bie/" target="_blank">别昨?/a> 2011-03-24 11:08 <a href="http://www.aygfsteel.com/zuofei-bie/archive/2011/03/24/346922.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转] 常用 JPA annotation 参?http://www.aygfsteel.com/zuofei-bie/archive/2010/03/24/316474.html别昨?/dc:creator>别昨?/author>Wed, 24 Mar 2010 13:07:00 GMThttp://www.aygfsteel.com/zuofei-bie/archive/2010/03/24/316474.htmlhttp://www.aygfsteel.com/zuofei-bie/comments/316474.htmlhttp://www.aygfsteel.com/zuofei-bie/archive/2010/03/24/316474.html#Feedback0http://www.aygfsteel.com/zuofei-bie/comments/commentRss/316474.htmlhttp://www.aygfsteel.com/zuofei-bie/services/trackbacks/316474.htmlTable
Table用来定义entity主表的nameQcatalogQschema{属性?
元数据属性说明:
· name: 表名
· catalog: 对应关系数据库中的catalog
· schemaQ对应关pL据库中的schema
· UniqueConstraints:定义一个UniqueConstraint数组Q指定需要徏唯一U束的列
        
@Entity
@Table(name="CUST")
public class Customer { ... }
  
SecondaryTable
一个entity class可以映射到多表,SecondaryTable用来定义单个从表的名字,主键名字{属性?
元数据属性说明:
· name: 表名
· catalog: 对应关系数据库中的catalog
· schemaQ对应关pL据库中的schema
· pkJoin: 定义一个PrimaryKeyJoinColumn数组Q指定从表的主键?
· UniqueConstraints:定义一个UniqueConstraint数组Q指定需要徏唯一U束的列
下面的代码说明CustomercL到两个表,主表名是CUSTOMERQ从表名是CUST_DETAILQ从表的主键列和主表的主键列cd相同Q列名ؓCUST_ID?
        
@Entity
@Table(name="CUSTOMER")
@SecondaryTable(name="CUST_DETAIL",pkJoin=@PrimaryKeyJoinColumn(name="CUST_ID"))
public class Customer { ... }

SecondaryTables
当一个entity class映射C个主表和多个从表Ӟ用SecondaryTables来定义各个从表的属性?
元数据属性说明:
· valueQ?定义一个SecondaryTable数组Q指定每个从表的属性?
        
@Table(name = "CUSTOMER")
@SecondaryTables( value = {
@SecondaryTable(name = "CUST_NAME", pkJoin = { @PrimaryKeyJoinColumn(name = "STMO_ID", referencedColumnName = "id") }),
@SecondaryTable(name = "CUST_ADDRESS", pkJoin = { @PrimaryKeyJoinColumn(name = "STMO_ID", referencedColumnName = "id") }) })
public class Customer {}

UniqueConstraint
UniqueConstraint定义在Table或SecondaryTable元数据里Q用来指定徏表时需要徏唯一U束的列?
元数据属性说明:
· columnNames:定义一个字W串数组Q指定要建唯一U束的列名?
        
@Entity
@Table(name="EMPLOYEE",
uniqueConstraints={@UniqueConstraint(columnNames={"EMP_ID", "EMP_NAME"})}
)
public class Employee { ... }

Column
Column元数据定义了映射到数据库的列的所有属性:列名Q是否唯一Q是否允ؓI,是否允许更新{?
元数据属性说明:
· name:列名?
· unique: 是否唯一
· nullable: 是否允许为空
· insertable: 是否允许插入
· updatable: 是否允许更新
· columnDefinition: 定义时创建此列的DDL
· secondaryTable: 从表名。如果此列不建在主表上(默认建在主表Q,该属性定义该列所在从表的名字?
        
public class Person {
@Column(name = "PERSONNAME", unique = true, nullable = false, updatable = true)
private String name;
@Column(name = "PHOTO", columnDefinition = "BLOB NOT NULL", secondaryTable="PER_PHOTO")
private byte[] picture;

JoinColumn
如果在entity class的field上定义了关系Qone2one或one2many{)Q我们通过JoinColumn来定义关pȝ属性。JoinColumn的大部分属性和ColumncM?
元数据属性说明:
· name:列名?
· referencedColumnName:该列指向列的列名Q徏表时该列作ؓ外键列指向关pd一端的指定列)
· unique: 是否唯一
· nullable: 是否允许为空
· insertable: 是否允许插入
· updatable: 是否允许更新
· columnDefinition: 定义时创建此列的DDL
· secondaryTable: 从表名。如果此列不建在主表上(默认建在主表Q,该属性定义该列所在从表的名字?
下面的代码说明Custom和Order是一对一关系。在Order对应的映表Z个名为CUST_ID的列Q该列作为外键指向Custom对应表中名ؓID的列?
        
public class Custom {
@OneToOne
@JoinColumn(
name="CUST_ID", referencedColumnName="ID", unique=true, nullable=true, updatable=true)
public Order getOrder() {
return order;
}

JoinColumns
如果在entity class的field上定义了关系Qone2one或one2many{)Qƈ且关pd在多个JoinColumnQ用JoinColumns定义多个JoinColumn的属性?
元数据属性说明:
· value: 定义JoinColumn数组Q指定每个JoinColumn的属性?
下面的代码说明Custom和Order是一对一关系。在Order对应的映表Z列,一列名为CUST_IDQ该列作为外键指向Custom对应表中名ؓID的列,另一列名为CUST_NAMEQ该列作为外键指向Custom对应表中名ؓNAME的列?
        
public class Custom {
@OneToOne
@JoinColumns({
@JoinColumn(name="CUST_ID", referencedColumnName="ID"),
@JoinColumn(name="CUST_NAME", referencedColumnName="NAME")
})
public Order getOrder() {
return order;
}

Id
声明当前field为映表中的主键列。id值的获取方式有五U:TABLE, SEQUENCE, IDENTITY, AUTO, NONE。Oracle和DB2支持SEQUENCEQSQL Server和Sybase支持IDENTITY,mysql支持AUTO。所有的数据库都可以指定为AUTOQ我们会Ҏ不同数据库做转换。NONE (默认)需要用戯己指定Id的倹{元数据属性说明:
· generate():主键值的获取cd
· generator():TableGenerator的名字(当generate=GeneratorType.TABLE才需要指定该属性)
下面的代码声明Task的主键列id是自动增长的?Oracle和DB2从默认的SEQUENCE取|SQL Server和Sybase该列建成IDENTITYQmysql该列建成auto increment?
        
@Entity
@Table(name = "OTASK")
public class Task {
@Id(generate = GeneratorType.AUTO)
public Integer getId() {
return id;
}
}

IdClass
当entity class使用复合主键Ӟ需要定义一个类作ؓid class。id class必须W合以下要求:cdd明ؓpublicQƈ提供一个声明ؓpublic的空构造函数。必d现Serializable接,覆写 equals()和hashCodeQ)Ҏ。entity class的所有id field在id class都要定义Q且cd一栗?
元数据属性说明:
· value: id class的类?
   public class EmployeePK implements Java.io.Serializable{
       String empName;
       Integer empAge;

       public EmployeePK(){}
       public boolean equals(Object obj){ ......}
       public int hashCode(){......}
    }

    @IdClass(value=com.acme.EmployeePK.class)
    @Entity(access=FIELD)
    public class Employee {
        @Id String empName;
        @Id Integer empAge;
    }
    
     
MapKey
在一对多Q多对多关系中,我们可以用Map来保存集合对象。默认用主键值做keyQ如果用复合主键,则用id class的实例做keyQ如果指定了name属性,q指定的field的值做key?
元数据属性说明:
· name: 用来做key的field名字
下面的代码说明Person和Book之间是一对多关系。Person的books字段是MapcdQ用Book的isbn字段的g为Map的key?
        

@Table(name = "PERSON")
public class Person {
@OneToMany(targetEntity = Book.class, cascade = CascadeType.ALL, mappedBy = "person")
@MapKey(name = "isbn")
private Map books = new HashMap();
}


OrderBy
在一对多Q多对多关系中,有时我们希望从数据库加蝲出来的集合对象是按一定方式排序的Q这可以通过OrderBy来实玎ͼ默认是按对象的主键升序排列?
元数据属性说明:
· value: 字符串类型,指定排序方式。格式ؓ"fieldName1 [ASC|DESC],fieldName2 [ASC|DESC],......",排序cd可以不指定,默认是ASC?
下面的代码说明Person和Book之间是一对多关系。集合books按照Book的isbn升序Qname降序排列?
        

@Table(name = "MAPKEY_PERSON")
public class Person {
@OneToMany(targetEntity = Book.class, cascade = CascadeType.ALL, mappedBy = "person")
@OrderBy(name = "isbn ASC, name DESC")
private List books = new ArrayList();
}


PrimaryKeyJoinColumn
在三U情况下会用到PrimaryKeyJoinColumn?
· l承?
· entity class映射C个或多个从表。从表根据主表的主键列(列名为referencedColumnName值的列)Q徏立一个类型一L主键列,列名由name属性定义?
· one2one关系Q关pȝ护端的主键作为外键指向关p被l护端的主键Q不再新Z个外键列?
元数据属性说明:
· name:列名?
· referencedColumnName:该列引用列的列名
· columnDefinition: 定义时创建此列的DDL
下面的代码说明Customer映射C个表Q主表CUSTOMER,从表CUST_DETAILQ从表需要徏立主键列CUST_IDQ该列和主表的主键列id除了列名不同Q其他定义一栗?
          @Entity
@Table(name="CUSTOMER")
@SecondaryTable(name="CUST_DETAIL",pkJoin=@PrimaryKeyJoinColumn(name="CUST_ID"QreferencedColumnName="id"))
public class Customer {
@Id(generate = GeneratorType.AUTO)
public Integer getId() {
return id;
}
}

下面的代码说明Employee和EmployeeInfo是一对一关系QEmployee的主键列id作ؓ外键指向EmployeeInfo的主键列INFO_ID?
        
@Table(name = "Employee")
public class Employee {
@OneToOne
@PrimaryKeyJoinColumn(name = "id", referencedColumnName="INFO_ID")
EmployeeInfo info;
}

PrimaryKeyJoinColumns
如果entity class使用了复合主键,指定单个PrimaryKeyJoinColumn不能满要求Ӟ可以用PrimaryKeyJoinColumns来定义多个PrimaryKeyJoinColumn?
元数据属性说明:
· value: 一个PrimaryKeyJoinColumn数组Q包含所有PrimaryKeyJoinColumn?
下面的代码说明了Employee和EmployeeInfo是一对一关系。他们都使用复合主键Q徏表时需要在Employee表徏立一个外键,从Employee的主键列id,name指向EmployeeInfo的主键列INFO_ID和INFO_NAME.
        
@Entity
@IdClass(EmpPK.class)
@Table(name = "EMPLOYEE")
public class Employee {
private int id;
private String name;
private String address;
@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumns({
@PrimaryKeyJoinColumn(name="id", referencedColumnName="INFO_ID"),
@PrimaryKeyJoinColumn(name="name" , referencedColumnName="INFO_NAME")})
EmployeeInfo info;
}
@Entity
@IdClass(EmpPK.class)
@Table(name = "EMPLOYEE_INFO")
public class EmployeeInfo {
@Id
@Column(name = "INFO_ID")
private int id;
@Id
@Column(name = "INFO_NAME")
private String name;
}

Transient
Transient用来注释entity的属性,指定的这些属性不会被持久化,也不会ؓq些属性徏表?
        
@Transient
private String name;

Version
Version指定实体cd乐观事务中的version属性。在实体c重新由EntityManager理q且加入C观事务中Ӟ保证完整性。每一个类只能有一个属性被指定为versionQversion属性应该映到实体cȝ主表上?
下面的代码说明versionNum属性作个类的versionQ映到数据库中主表的列名是OPTLOCK?
        
@Version
@Column("OPTLOCK")
protected int getVersionNum() { return versionNum; }

Lob
Lob指定一个属性作为数据库支持的大对象cd在数据库中存储。用LobTypeq个枚D来定义Lob是二q制cdq是字符cd?
LobType枚Dcd说明Q?
· BLOB 二进制大对象QByte[]或者Serializable的类型可以指定ؓBLOB?
· CLOB 字符型大对象Qchar[]、Character[]或Stringcd可以指定为CLOB?
元数据属性说明:
· fetchQ?定义q个字段是lazy loadedq是eagerly fetched。数据类型是FetchType枚DQ默认ؓLAZY,即lazy loaded.
· typeQ?定义q个字段在数据库中的JDBC数据cd。数据类型是LobType枚DQ默认ؓBLOB?
下面的代码定义了一个BLOBcd的属性和一个CLOBcd的属性?
        
@Lob
@Column(name="PHOTO" columnDefinition="BLOB NOT NULL")
protected JPEGImage picture;
@Lob(fetch=EAGER, type=CLOB)
@Column(name="REPORT")
protected String report;

JoinTable
JoinTable在many-to-many关系的所有者一边定义。如果没有定义JoinTableQ用JoinTable的默认倹{?
元数据属性说明:
· table:q个join table的Table定义?
· joinColumns:定义指向所有者主表的外键列,数据cd是JoinColumn数组?
· inverseJoinColumns:定义指向非所有者主表的外键列,数据cd是JoinColumn数组?
下面的代码定义了一个连接表CUST和PHONE的join table。join table的表名是CUST_PHONEQ包含两个外键,一个外键是CUST_IDQ指向表CUST的主键IDQ另一个外键是PHONE_IDQ指向表PHONE的主键ID?
        
@JoinTable(
table=@Table(name=CUST_PHONE),
joinColumns=@JoinColumn(name="CUST_ID", referencedColumnName="ID"),
inverseJoinColumns=@JoinColumn(name="PHONE_ID", referencedColumnName="ID")
)

TableGenerator
TableGenerator定义一个主键值生成器Q在Idq个元数据的generateQTABLEӞgenerator属性中可以使用生成器的名字。生成器可以在类、方法或者属性上定义?
生成器是为多个实体类提供q箋的ID值的表,每一行ؓ一个类提供ID|ID值通常是整数?
元数据属性说明:
· name:生成器的唯一名字Q可以被Id元数据用?
· table:生成器用来存储id值的Table定义?
· pkColumnName:生成器表的主键名U?
· valueColumnName:生成器表的ID值的列名U?
· pkColumnValue:生成器表中的一行数据的主键倹{?
· initialValue:id值的初始倹{?
· allocationSize:id值的增量?
下面的代码定义了两个生成器empGen和addressGenQ生成器的表是ID_GEN?
        
@Entity public class Employee {
...
@TableGenerator(name="empGen",
table=@Table(name="ID_GEN"),
pkColumnName="GEN_KEY",
valueColumnName="GEN_VALUE",
pkColumnValue="EMP_ID",
allocationSize=1)
@Id(generate=TABLE, generator="empGen")
public int id;
...
}
@Entity public class Address {
...
@TableGenerator(name="addressGen",
table=@Table(name="ID_GEN"),
pkColumnValue="ADDR_ID")
@Id(generate=TABLE, generator="addressGen")
public int id;
...
}

SequenceGenerator
SequenceGenerator定义一个主键值生成器Q在Idq个元数据的generator属性中可以使用生成器的名字。生成器可以在类、方法或者属性上定义。生成器是数据库支持的sequence对象?
元数据属性说明:
· name:生成器的唯一名字Q可以被Id元数据用?
· sequenceName:数据库中Qsequence对象的名U。如果不指定Q会使用提供商指定的默认名称?
· initialValue:id值的初始倹{?
· allocationSize:id值的增量?
下面的代码定义了一个用提供商默认名称的sequence生成器?
        
@SequenceGenerator(name="EMP_SEQ", allocationSize=25)

DiscriminatorColumn
DiscriminatorColumn定义在用SINGLE_TABLE或JOINEDl承{略的表中区别不l承层次的列?
元数据属性说明:
· name:column的名字。默认gؓTYPE?
· columnDefinition:生成DDL的sql片断?
· length:Stringcd的column的长度,其他cd使用默认?0?
下面的代码定义了一个列名ؓDISCQ长度ؓ20的Stringcd的区别列?
        
@Entity
@Table(name="CUST")
@Inheritance(strategy=SINGLE_TABLE,
discriminatorType=STRING,
discriminatorValue="CUSTOMER")
@DiscriminatorColumn(name="DISC", length=20)
public class Customer { ... }

 



]]>
List and ArrayList and LinkList 区别与用?/title><link>http://www.aygfsteel.com/zuofei-bie/archive/2010/03/22/316159.html</link><dc:creator>别昨?/dc:creator><author>别昨?/author><pubDate>Mon, 22 Mar 2010 06:46:00 GMT</pubDate><guid>http://www.aygfsteel.com/zuofei-bie/archive/2010/03/22/316159.html</guid><wfw:comment>http://www.aygfsteel.com/zuofei-bie/comments/316159.html</wfw:comment><comments>http://www.aygfsteel.com/zuofei-bie/archive/2010/03/22/316159.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zuofei-bie/comments/commentRss/316159.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zuofei-bie/services/trackbacks/316159.html</trackback:ping><description><![CDATA[List and  ArrayList: <br /> 1、List是一个接口,ArrayList是一个实CList接口的具体类?他们是父子关p,我们常用的是ArrayList,但常用List的引用去操作ArrayList q是一个简单的面向接口~程的一U,如:List myList = new ArrayList(); <br /> 2、他们主要是用来保存对象的集合,记得是保存对象的哦,你可别传个intq去?<br /> 3、要取出它里面保存的对象可以用下标,如:Object aaa = myList.get(0); q样我们把保存在myList里的W一个对象取出来l了 aaa 啦?br /> <br />  ArrayList:<br /> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">ArrayList其实是包装了一?font color="#800000"><span style="background-color: rgb(255,255,255)">数组</font></span>Object[]Q当实例化一个ArrayListӞ一个数l也被实例化Q当向ArrayList中添加对象是Q数l的大小也相应的改变。这样就带来以下有特点:</p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><strong>快速随卌?/strong> 你可以随卌问每个元素而不用考虑性能问题Q通过调用get(i)Ҏ来访问下标ؓi的数l元素?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><strong>向其中添加对象速度?/strong> 当你创徏数组是ƈ不能定其容量,所以当改变q个数组时就必须在内存中做很多事情?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><strong>操作其中对象的速度?/strong> 当你要想数组中Q意两个元素中间添加对象时Q数l需要移动所有后面的对象?<br /> <br /> LinkList:<br /> </p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal">LinkedList是通过<font color="#ff0000">节点直接彼此q接</font>来实现的。每一个节炚w包含前一个节点的引用Q后一个节点的引用和节点存储的倹{当一个新节点插入Ӟ只需要修改其中保持先后关pȝ节点的引用即可,当删除记录时也一栗这样就带来以下有特点:</p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><strong>操作其中对象的速度?</strong>只需要改变连接,新的节点可以在内存中的Q何地?/p> <p style="margin: 0cm 0cm 0pt" class="MsoNormal"><strong>不能随即讉K</strong> 虽然存在get()ҎQ但是这个方法是通过遍历接点来定位的所以速度慢?br /> <br /> <strong><span>一些结论:</span></strong><br /> <span>当一些被定义好的数据需要放C数组对应?/span><span lang="EN-US">List</span><span>中,</span><span lang="EN-US"><span id="wmqeeuq" class="hilite1">ArrayList</span></span><span>是很好的选择Q因为它可以动态变化,但是不要在整个应用程序中频繁的用?br /> 你要很方便的操作其中的数据而不用随卌问时;<span lang="EN-US">LinkList</span><span>是很好的选择。如果你要频J随问徏议用ArrayList?/span></span></p> <br /> <img src ="http://www.aygfsteel.com/zuofei-bie/aggbug/316159.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zuofei-bie/" target="_blank">别昨?/a> 2010-03-22 14:46 <a href="http://www.aygfsteel.com/zuofei-bie/archive/2010/03/22/316159.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">İ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³ƶ</a>| <a href="http://" target="_blank">DZ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ҽ</a>| <a href="http://" target="_blank">̶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">γ</a>| <a href="http://" target="_blank">̳</a>| <a href="http://" target="_blank">ָ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϣ</a>| <a href="http://" target="_blank">Ȫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӳ</a>| <a href="http://" target="_blank">կ</a>| <a href="http://" target="_blank">۰</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ľ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>