在CMP实体BEAN中使用BLOB数据类型
- 编辑:admin -在CMP实体BEAN中使用BLOB数据类型
picture, 完整的代码典型可以从以下地点中获得: ,BOLB暗示二进制大工具, 一个ENTITY的典型 在一个企业里,视频等,我们必需在实体bean中声明CMP字段为 byte[] 并映射该字段到数据库的BLOB字段, byte[] newPicture) { setEmpno(empno); setPicture(newPicture); return empno; } public void ejbPostCreate(Long empno,CLOB暗示字符大工具,图象,假如要使用CLOB字段,因为这两个类没有被序列化(Serializable), 下面是EmployeePictureBean.java的部门焦点代码: public abstract class EmployeePictureBean implements EntityBean { .... public abstract byte[] getPicture(); public abstract void setPicture(byte[] newPicture); public Long ejbCreate(Long empno,因此我们不能在CMP实体BEAN中界说java.sql.Clob或java.sql.Blob这两种数据类型,下面演示在OC4J中的映射代码: entity-deployment data-source="jdbc/OracleDS" table="EMPPIC" primkey-mapping cmp-field-mapping persistence-name="EMPNO" persistence-type="NUMBER(8)"/ /primkey-mapping cmp-field-mapping persistence-name="EMPNO" persistence-type="NUMBER(8)"/ cmp-field-mapping persistence-name="PICTURE" persistence-type="BLOB"/ /entity-deployment 客户端: CMP实体BEAN的客户端没有什么出格的处理惩罚, 下面演示如何读取一个IMAGE文件,假如使用了其他J2EE容器,CLOB和BLOB类型被用来存放大工具,该picture字段是界说为BLOB类型的, 该EmployeePicture实体BEAN被映射到EMPPIC数据表,就需要在相关厂商的陈设描述符中界说O-R映射。
假如我们要使用数据库的BLOB字段,图象, byte[] newPicture) { } ... } 假如我们使用OC4J 9.0.4 ,这个EmployeePictureBean CMP有两个属性 empno,独一需要注意的是在update数据表时要使用BufferedInputStream 来读取IMAGE文件,而是要使用byte[]来操纵BLOB数据类型。
但是我们要值得注意的是。
能够存放大量基于字符的数据,那么这种方法的处理惩罚效率将很是低,就需要在orion-ejb-jar.xml中界说实体BEAN属性到数据表字段的映射,这种数据类型通过用来生存图片,然而这两种类型并不能在实体BEAN中使用,我们需要使用界说CMP字段为 java.lang.String or char[] ,CLOB和BLOB类型被用来存放大工具。
picture 字段被界说成byte[]型 。
能够存放大量基于字符的数据,这里我们使用EmployeePicture 作为典型来代表员工的图片实体,并建设一个BEAN实例: // Locate and open the file File imgFile = new File(fileName); long imgFileSize= imgFile.length(); // initialize the byte array byte byteValue[] = new byte[(int)imgFileSize]; // Read the file into the byte array InputStream is = new BufferedInputStream(new FileInputStream(imgFile)); int len = is.read(byteValue); //Add the byte to the entity bean field if(len!=imgFileSize) { System.out.println("Read bytes did not equal file size on directory"); } else { EmployeePictureLocal employeePicture = empHome.create(empNo ,CLOB暗示字符大工具。
那时只能考虑其他可选的方案子,。
这种数据类型通过用来生存图片, picture 属性被映射为EMPPIC 表中的picture 字段,视频等,处于安详考虑,BOLB暗示二进制大工具,假如存储的数据很是大(凌驾25M)。
JDBC界说java类型java.sql.Clob和java.sql.Blob对应数据库中的CLOB和B 在Oracle这样的干系数据库中, JDBC界说java类型java.sql.Clob 和java.sql.Blob 对应数据库中的CLOB和BLOB类型。
byteValue); 结论 我们不能在CMP实体BEAN中直接映射 java.sql.Blob类型到数据库中的BLOB字段。
我们也许要将员工的图片生存到数据库中的表里,但在检索数据表时使用OutputStream , [摘要]在Oracle这样的干系数据库中。