12 2004 档案
摘要:目录:SAFEARRAY使用实例... 1目录:... 1前言:... 1何谓SAFEARRAY:... 1创建SAFEARRAY:2方法一:使用SafeArrayAllocDescriptor在栈上创建一维数组... 2方法二:使用SafeArrayAllocDescriptor和SafeArrayAllocData在堆上创建一维数组... 2方法三:使用SafeArrayAllocDescriptor和SafeArrayAllocData在堆上创建二维数组... 3方法四:使用SafeArrayCreate在堆上创建一维数组... 4方法五:使用SafeArrayCreate在堆上创建二.
        阅读全文
            
摘要:1)引入ADO库定义文件# import “c:/program files/common files/system/ado/msado15.dll” no_namespacerename (“EOF”,”adoEOF”)使得编译的时候,为我们的工程文件生成两个头文件:msado15.tlh和ado15.tli注意,msado15.dll的路径可能有所区别,请核对自己的电脑所在的路径2)初始化COM库在工程的App类的InitInstance ( )函数里面加上AfxOleInit ( );//MFC用法C++的常规方法是--------:::CoInitialize(NULL);….::Co
        阅读全文
            
摘要:COM多线程原理与应用目录:COM多线程原理与应用... 1目录:... 1前言:... 1套间:... 1套间的定义:... 1套间的分类:... 2套间的进入和退出:.. 2对象的同步:... 2组件对象的同步:... 2COM对象线程模型:.. 2进程内对象线程模型的种类:.. 3ATL对多线程的支持:.. 3对象引用的保护:... 3成员变量的保护:... 4COM+导致的变化:... 4上下文概述:... 4上下文对象:... 4调用对象:.. 5前言:COM多线程一直是个不容易弄清的问题,我也被困扰了很久,特别是COM在线程方面的术语总是不能统一。本文是为了将我所学所用得做一个总结
        阅读全文
            
摘要:在前面的所有的实体Bean的例子中,我们所用的主键都是Id,而且都是由容器自动生成的。如:@Id(generate = GeneratorType.AUTO)public int getId(){ return id;}事实上,主键可以是任意的java基本类型、或者是基本类型的包装类,如Integer、String类型、或者是带字段或属性的主键类。注意,如果这样使用主键,你需要将主键的注释中的生成规则改为NONE。就是由程序生成主键值。主键类必须实现hashCode和equals方法。这个例子前面举例过,就是一个存储学生信息的实体bean,在那个例子中,使用Name类作为属性,并且以Id作为主
        阅读全文
            
摘要:这个和单表策略差不多,唯一不同就是在存存储的时候规定每一个实体bean映射到独立的一张表上。如:@Entity@Inheritance(strategy = InheritanceType.JOINED, discriminatorType = DiscriminatorType.STRING)@DiscriminatorColumn(name = "P_TYPE", nullable = true)在这个策略下,每个实体Bean也是映射成各自独立的一张表,但是和每类一表策略不同的是,子实体bean的映射的表中只有新增的属性。子实体bean通过联合父表得到数据。@Inher
        阅读全文
            
摘要:这个和单表策略差不多,唯一不同就是在存存储的时候规定每一个实体bean映射到独立的一张表上。如:@Entity@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS, discriminatorType = DiscriminatorType.STRING)@DiscriminatorColumn(name = "P_TYPE", nullable = true)这个例子主要有以下几个文件,这个例子主要实现了Person和Man、Woman之间的继承关系,这个例子和上一个例子没多大差别,就是在实体Bean注释的时候将I
        阅读全文
            
摘要:在EJB3.0中,实体Bean可以实现继承关系。比如有个Person的实体bean,它有姓名和性别两个属性。上帝和女娲造人的时候,造出两种人:Man和Woman。Man和Woman都是实体Bean,而且他们都继承Person。单一表策略就是副实体和子实体的数据都存放在一张表中,同时指定一列用来区别这些实体。如:@Entity@Inheritance(strategy = InheritanceType.SINGLE_TABLE, discriminatorType = DiscriminatorType.STRING)@DiscriminatorColumn(name = "P_TY
        阅读全文
            
摘要:在前面的例子中,我们演示了一对多和多对一的例子,在本章将演示多对多和一对一的关系。学生和老师就是多对多的关系。一个学生有多个老师,一个老师教多个学生。学生和档案就是一对一的关系(不知道国外的学生有没有档案?)。为了实现多对多的关系,数据库中需要关联表,用以在两个实体间建立关联。JBoss可以自动生成关联表,你也可以@AssociationTable来指定关联表的信息。如:@ManyToMany(cascade = {CascadeType.CREATE, CascadeType.MERGE}, fetch = FetchType.EAGER, isInverse = true)@Associa
        阅读全文
            
摘要:在前面的例子中,我们每一个实体Bean只映射到数据库中的一张表上。事实上,一个实体Bean可以映射到多张表上。在一些需要字典表的项目上会经常用到,象以前我做过的项目,使用到很多国标规定的数据表。在我们下面这个例子中,性别作为一个字典表存在,学生这个实体将映射到学生信息表、性别表这两个表。从表可以使用@SecondaryTable来注释:@Target({TYPE}) @Retention(RUNTIME)public @interface SecondaryTable {String name();String catalog() default "";String sch
        阅读全文
            
摘要:在上面的章节我们提到,实体bean的属性可以是java基本对象、Date等,事实上,实体Bean的属性也可以是其他的java对象。这些Java对象不能直接从持久化上下文中读取,它依赖于主实体bean。不象关联实体Bean,在EJB3.0中不支持依赖值对象的集合。依赖值对象不支持继承,这将在EJB3.1中在讨论。依赖类需要使用◎DependentObject来注释:@Target({TYPE}) @Retention(RUNTIME)public @interface DependentObject {AccessType access() default PROPERTY;}这个注释可以指定容
        阅读全文
            
摘要:在上面一个例子中,实体Bean的属性对应到数据表中的列,都是采用默认的设置。通过Column,你可以为属性指定数据表中的列名。Column的声明如下:@Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)public @interface Column {String name() default "";boolean primaryKey() default false;boolean unique() default false;boolean nullable() default true;boolean insertab
        阅读全文
            
摘要:在EJB3.0中开发实体Bean非常简单,你可以象开发一般的java bean一样编程,只需做少量的注释。一个实体bean不需要实现Home接口或者Remote、Local接口。实体Bean通过EntityManager产生、查找、和持久层结合、从持久层收回等操作。JBoss的EJB3.0架构在Hibernate之上。注释:@Entity:如果你要建立一个实体Bean的类,你必须在类上加上这个注释,用来告诉容器这个类是实体Bean。这个Bean的主键由@Id指定。这个注释的声明如下:@Target(TYPE) @Retention(RUNTIME)public @interface Entit
        阅读全文
            
摘要:可以通过访问SessionContext得到它的定时服务。SessionContext可以通过注入的方式得到:private @Inject SessionContext ctx;在EJB2.1的规范中需要实现ejbTimeout方法,当然还有ejbPassivate、ejbRemove等方法。在EJB3.0中,只有你想用它们的时候,你才必须创建它们,否则不必实现。这个例子主要有5个文件,这个例子的Bean是一个无状态会话Bean:NewsTimer.java:业务接口。NewsTimer.java:业务实现类。将来我们开发的EJB也都是这样命名(在接口名上加上Bean)。Client.jav
        阅读全文
            
摘要:消息驱动Bean的业务接口已经被定义,对于使用JMS来说那就是MessageListener接口,这个接口定义了OnMessage方法。实现类必须使用MessageDriven注释。可以实现也可以不实现setMessageDrivenContext和ejbRemove方法。在JBOSS中,通过ConnectionConfig指定消息的队列的JNDI名称。@ConnectionConfig(destinationType = javax.jms.Queue.class, destinationJndiName = "queue/kuaffejb3/sample", durab
        阅读全文
            
摘要:依赖注入(Dependency Injection),又称作控制反转(IOC),本来是一种设计模式,现在被吵得热火朝天,有点过了。比较有名项目如String,picoContainer等。在EJB3.0中,可以通过在字段和设置方法上加上注释注入依赖,我想在很快会有新的项目,或者在原来的项目的基础上,一些IOC容器会采用注释的方式注入依赖,JDK5.0加入的注释的确是一个很强大的功能,相对而言,在.net中的属性却没有发挥那么大的价值。这就是开源的威力,成千上万的在开源java程序员不断涌现出新的想法新的功能。看下面的例子:我们知道,JBOSS中已经默认配置了一个数据源,它的JNDI名称是&qu
        阅读全文
            
摘要:不象在EJB2.X中,需要在部署文件中部署事务。EJB3.0通过注释就为指定的类或者方法提供事务支持。在EJB3.0的预览版规范中,指明使用TransactionAttribute作为注释,TransactionAttribute的声明如下@Target({METHOD, TYPE}) @Retention(RUNTIME)public @interface TransactionAttribute {TransactionAttributeType value() default REQUIRED;}TransactionAttributeType是一个枚举类型:public enum Tr
        阅读全文
            
摘要:和无状态会话Bean一样,一个有状态会话Bean必须有一个业务接口,这个接口由会话Bean来实现,或者也可以由会话Bean来产生。这样,你可以只写一个文件,就可以生成业务逻辑实现类、远程接口、本地接口等。在目前jboss的实现中,必须要有一个独立的业务接口。这个接口不必实现EJBObject或者EJBLocalObject。一个有状态会话Bean必须使用Statelfull注释,以表明它是一个有状态的会话Bean。EJB容器将根据这个注释来判定它的类型。或者实现javax.ejb.SessionBean接口。一个有状态的会话Bean可以实现setSessionContext方法,也可以不实现。
        阅读全文
            
摘要:在所有的EJB3.0规范中定义的EJB,都不必实现Home接口。一个会话Bean必须有一个业务接口,这个接口由会话Bean来实现,或者也可以由会话Bean来产生。这样,你可以只写一个文件,就可以生成业务逻辑实现类、远程接口、本地接口等。…@Remote@Local@Statelesspublic class CounterBean{ ……}在目前jboss的实现中,必须要有一个独立的业务接口。这个接口不必实现EJBObject或者EJBLocalObject。一个无状态会话Bean必须使用Stateless注释,以表明它是一个无状态的会话Bean。EJB容器将根据这个注释来判定它的类型。或者实
        阅读全文
            
摘要:5.0以前的代理服务器设置挺不友好,现在,5.0提供了对通过代理服务器的更加灵活的控制,它可以对http,https,ftp,socks等分别设置,而且还可以设置不需要通过代理服务器的主机和地址。这和我们在IE、firefox中设置代理服务器类似。1.你可以在通过java -DXXXX=YYYY方式在程序启动时设置,你也可以在程序中将设置放入系统属性中,你也可以设置Proxy类,通过它来控制。2.可以通过ProxySelector来做自己的代理服务器的负载平衡等。package com.kuaff.jdk5package;import java.io.IOException;import ja
        阅读全文
            
摘要:这个例子使用了J2SE5.0的ProcessBuilder类执行外部的程序,相对于 Runtime.exec ,它更方便,可以设置环境变量等。package com.kuaff.jdk5package;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List;public class ProcessBuilderShow{ public static List<String> getPhysicalAddress() { Process
        阅读全文
            
摘要:j2se 5.0使用 Java Management Extensions (JMX)来管理和监控java平台。import java.lang.management.ClassLoadingMXBean;import java.lang.management.CompilationMXBean;import java.lang.management.ManagementFactory;import java.lang.management.MemoryMXBean;import java.lang.management.MemoryManagerMXBean;import java.lang
        阅读全文
            
摘要:J2SE5.0新特性之范型编程晁岳攀 smallnest@163.com本章主要参考sun公司文档。C++程序员对范型编程肯定不陌生,尤其在STL大行其道的时候,C#2.0也将实现范型编程的功能。Java也不甘示弱,也推出了范型编程的语言新特性。1.一个简单的范型示例在以前,你可能遇到过这样的代码:List list = new LinkedList();list.add(“麻省理工”);list.add(“普林斯顿”);list.add(“伯克利”);String name = (String)list.iterator.next();注意,第三行需要强制转换。而使用范型:List<S
        阅读全文
            
摘要:J2SE5.0新特性之元数据晁岳攀 smallnest@163.com元数据,在java中也叫注释、注解。微软的.net从开始设计时就有这个功能,不过它的术语叫属性。这时一个强大的功能,程序员如果想挣钱,得好好研究它,因为在将来的j2ee开发中,广泛的使用它,包括ejb的声明,IOC中的注入等。IBM网站有篇文章详细介绍了它,挺好的一篇文章。http://www-900.ibm.com/developerWorks/cn/java/j-annotate1/http://www-900.ibm.com/developerworks/cn/java/j-annotate2.shtml我曾兴致勃勃的
        阅读全文
            
 
                    
                 浙公网安备 33010602011771号
浙公网安备 33010602011771号