| 作者:Sakthivel Gopal,2006 年 4 月 |
|
|
|
Web 应用程序需要将文本文件上载到数据库,以便用户可以检索这些文件。此技术提示介绍了如何利用 Sun Java Studio Creator 2 IDE 开发 Web 应用程序,该应用程序可以将文本文件上载到数据库中并允许用户检索和查看这些文件。
|
此提示包含以下部分:
- 设置演示项目
- 将文本文件上载到数据库
- 检索并显示文本文件
设置演示项目
此技术提示介绍了如何将文本文件上载到数据库字符型大型对象 (CLOB) 列,以及如何检索这些文本文件以便用户可以进行查看。为了帮助您最大限度地从中获取信息,此技术提示提供了一个项目 zip 文件,其中包括用于演示此任务的 Java Studio Creator 2 项目。请您下载此 zip 文件,并在 IDE 中打开项目。
请按照以下步骤设置此 zip 文件中包含的演示项目。
- 下载 Demo_CLOB.zip 文件,并将其内容解压缩到一个目录中。
- 在捆绑的数据源中创建一个名为 DEMO_CLOB 的表。该步骤的说明可能会因所使用 IDE 版本的不同而有所不同。
-
如果您使用的是 Java Studio Creator 2 IDE:
请在“服务器”窗口中,右键单击 "Order" 数据源节点,然后从其上下文菜单中选择“查看数据”。这将在设计窗口中打开查询。复制下面显示的 CREATE TABLE SQL 代码并将其粘贴到“查询”文本区域中,然后单击“运行查询”按钮以执行命令。该 SQL 代码将在 PointBase 样例数据库的 PBPUBLIC 结构中创建所需的表。
CREATE TABLE DEMO_CLOB (
ID_COL INTEGER IDENTITY PRIMARY KEY,
CLOB_COL CLOB)
-
如果您使用的是 Java Studio Creator 2 Update 1 IDE:
请在“服务器”窗口中,右键单击 "Travel" 数据源节点,然后从其上下文菜单中选择“查看数据”。这将在设计窗口中打开查询。复制下面显示的 CREATE TABLE SQL 代码并将其粘贴到“查询”文本区域中,然后单击“运行查询”按钮以执行命令。该 SQL 代码将在捆绑的样例数据库中创建所需的表。
CREATE TABLE DEMO_CLOB (
IDCOL INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1,
INCREMENT BY 1),
CLOB_COL CLOB)
- 在 IDE 中打开项目。项目打开后,单击“运行主项目”(也就是绿色箭头所指示的图标)工具栏按钮。
- 当应用程序的浏览器打开时,单击 "Browse",然后选择系统上的任意文本文件。
- 单击 "Upload Text File" 按钮,将所选的文本文件上载到数据库中。应用程序还可以检索此数据库表中存储的所有文本行,并使用表组件显示它们。请参见图 1。
将文本文件上载到数据库
"Upload Text File" 按钮的操作处理程序方法 upload_file_action 使用文件上载组件来处理文本文件到数据库的上载。文件上载组件(名为 fileUpload1)会以多部分请求的形式将所选文件(即,包含文本数据的文件)传输到服务器。upload_file_action 操作处理程序将执行以下操作:
检索并显示文本文件
应用程序使用 SQL 从数据库中检索 CLOB 列。数据将以 java.sql.Clob 类型返回。但是,要在 Web 页上显示此类型的数据,负责显示的 JavaServer Faces 组件必须先将数据转换为 String 类型。
该项目包含 ClobConverter 类(用于实现转换器接口),它可以从数据库中检索文本数据并将数据从 Clob 转换为 String(您可以在“项目”窗口的“源包”节点中找到此类)。
这个 ClobConverter 类在 WEB-INF/faces-config.xml 文件中被声明为一个转换器,如下所示:
<converter>
<converter-id>ClobConverter</converter-id>
<converter-class>
demo_clob.ClobConverter
</converter-class>
</converter>
负责显示 Clob 数据的表组件列会使用此转换器将数据转换为正确的格式。在页面的 JSP 代码中,您可以看到表列是与 CLOB_COL 绑定的,并且该列的属性转换器被设置为 ClobConverter。以下是此列的 JSP 代码:
<ui:staticText binding="#{Page1.staticText2}" converter="ClobConverter"
escape="false" id="staticText2"
text="#{currentRow.value['DEMO_CLOB.CLOB_COL']}"/>
小结
运行此项目并检查其代码后,您应该能够熟练地将类似功能添加到您自己的项目中。此外,您可能还需要参阅位于 http://gceclub.sun.com.cn/prodtech/javatools/jscreator/learning/tutorials/2/file_upload.html 站点的“使用文件上载组件”教程。
更多的开发者资源
有关为开发者提供的更多技术提示、文章和专家建议,请访问 Sun Developer Network (SDN) 上的 Java Studio Creator 开发者资源,网址为 http://gceclub.sun.com.cn/prodtech/javatools/jscreator/。
|