首页 > 范文大全 > 正文

用JavaBean实现对SQL server数据库中图像文件的存取

开篇:润墨网以专业的文秘视角,为您筛选了一篇用JavaBean实现对SQL server数据库中图像文件的存取范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:在动态网页的设计中,图像文件的存取已成为一项必不可少的工作。该文结合实例,具体给出了在JSP网页设计中,利用javabean的封装技术,实现sqlserver2000数据库中存取图像文件的方法,并给出了主要代码,对JSP动态网页的制作有借鉴意义。

关键词:JSP;JavaBean;SQL server;图像

中图分类号:TP391文献标识码:A文章编号:1009-3044(2009)14-3593-03

Taking JavaBean as an Access to Image Files in SQL server Database

LI Qun

(North University for Nationalities, Yinchuan 750021, China)

Abstract: To design dynamic web pages, getting access to image files has become absolutely necessary. Supported by concrete examples, the author of this paper points out that in designing JSP web pages we can get access to image files in SQL server 2000 Database by applying the packaging technology of JavaBean. He also lists the key codes, which can help to design JSP dynamic web pages.

Key words: JSP; JavaBean; SQL server; image

1 引言

JSP的全称是Java Server Pages,它是太阳微系统公司(Sun Microsystems Inc)倡导,多家公司参与建立的一种动态网页技术。在JSP应用程序中,数据库访问是一个重要的应用。然而,在JSP文件中直接嵌入访问数据库的代码及SQL语句则会使页面设计困难。如果将JSP和JavaBean技术结合在一起,可以用JavaBean实现业务逻辑和数据库操作的封装,使用JavaBean处理所有的数据访问,JSP只负责页面的显示,可提高对数据库进行访问的安全性及JSP网页设计的方便性[1]。此外,在动态网页的设计中,图像文件的存取已成为动态网页设计的一项必不可少的工作。利用数据库实现图片的集中存储,同时以网络为连接,通过基于HTTP协议的网络浏览器实现对数据库包括图片数据的远程访问[2],已是目前基于B/S结构设计的主流。本文结合实例,具体论述了在JSP网页设计中,调用JavaBean,实现在SQLserver2000数据库中存取图像文件的方法。

2 JSP程序运行环境及示例数据库的建立

2.1 JSP程序运行环境的建立

本文所采用操作系统为Windows 2000 Server版本。JDK是1.5版本, Tomcat是5.5版本。其安装及配置,在许多资料上都可以找到,不再赘述。

在微软网站上下载Microsoft SQL Server 2000 JDBC驱动程序。执行ms_jdbc_setup.exe可执行文件,完成安装。安装目录\lib\下的三个jar文件(msbase.jar、mssqlserver.jar、msutil.jar)是JDBC驱动核心,将这三个.jar文件加到CLASSPATH中。

2.2 示例数据库的建立

图片数据从存储的角度来看,相当于二进制数据的集合,被称为二进制大对象块(binary large object block,BLOB)。在 SQL Server 中,image数据类型存储的是长度不确定的二进制数据,最大长度是2GB,通常可以用来存储各种格式的图像信息[3][4]。本文将图片文件转换为二进制数据块存储到image字段中,使用时再将二进制信息转换成为原来格式的文件内容。据此,在SQL server 2000企业管理器中,建立数据库jbtest,在其中建立表pictest,表结构如表1所示。

3 开发、装配并部署访问数据库的JavaBean

3.1 开发Java程序

用记事本等文本编辑器编写Java程序PicBean.java,主要代码如下:

public class PicBean

{

private Connection con;

public PicBean ()//初始化连接。

{ String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver";

String SERVANDDB="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jbtest";

String USER="sa";

String PWD="123";

try{

Class.forName(CLASSFORNAME);

con = DriverManager.getConnection(SERVANDDB,USER,PWD);

}catch(Exception e){e.printStackTrace();}

}

//在数据库中添加信息

public void addpictest(String userName,String picture)throws Exception

{FileInputStream str=new FileInputStream(picture);

try{

PreparedStatement pstmt=con.prepareStatement("insert into pictest values(?,?)");

pstmt.setString(1,userName);

pstmt.setBinaryStream(2,str,str.available());

pstmt.execute();

con.close();}catch(Exception e)

}

//查询数据库

publicResultSet getpictest(String userName){

try{

Statement stm=con.createStatement();

ResultSet result=stm.executeQuery("select * from pictest where userName='"+userName+"'");

return result;}catch(Exception e){}

return null;}}

3.2 装配和部署JavaBean

在DOS命令行方式下,用javac PicBean.java命令将PicBean.java文件编译成字节码文件PicBean.class,为了简化论述,本文将PicBean.class文件拷贝到tomcat的应用目录下的“\WEB- INF\classes\”下。

4 在JSP网页中调用JavaBean完成对数据库的连接访问及图片文件的存取

4.1 开发并部署存储图片的JSP应用程序

编写访问SQLserver数据库并完成图像文件存储的jsp文件,本文中将文件名定为setpic.jsp,其主要代码如下:

使用JavaBean在数据库中存入图片文件:

String picture="d:\\pictest.jpg";

try {contact.addpictest(userName,picture);

}catch(Exception e){}

%>

var _userid = '';var _siteid =2230;var _istoken = 1;var _model = 'Model03'; WebPageSpeed =172; UrchinTrack();

代码中“String userName="liqun"; String picture="d:\\pictest.jpg";”中的字符串,在实际使用中可根据需要,利用request对象从其它静态网页的表单中得到。其中,"d:\\pictest.jpg"表示要存入数据库的图片文件。

将该JSP程序部署于目录tomcat的安装目录下的webapps中自己的应用目录下(例如应用目录为myweb)。启动tomcat,在浏览器中输入localhost: 8080/myweb/setpic.jsp,就可完成数据库中所要数据的存储。

4.2 开发并部署读取图片的JSP应用程序

编写访问SQLserver数据库并完成图像文件读取的jsp文件,本文中将文件名定为getpic.jsp,其主要代码如下:

使用JavaBean来读取数据库中的图片:

try{

ResultSet rst=contact.getpictest(userName);

while(rst.next()){

//rs.setContentType("image/jpeg");

ServletOutputStream sout = response.getOutputStream();

InputStream in = rst.getBinaryStream("picture");

byte b[] = new byte[0x7a120];

for(int i = in.read(b); i!= -1;){

sout.write(b);

in.read(b); }

sout.flush();

sout.close();

}

rst.close();

} catch(Exception e){System.out.println(e);} %>

var _userid = '';var _siteid =2230;var _istoken = 1;var _model = 'Model03'; WebPageSpeed =172; UrchinTrack();

代码中“String userName="liqun";”中的字符串,在实际使用中可根据需要,利用request对象从其它静态网页的表单中得到。

将该JSP程序部署于目录tomcat的安装目录下的webapps中自己的应用目录下(例如应用目录为myweb)。启动tomcat,在浏览器中输入localhost: 8080/myweb/getpic.jsp,就可完成对数据库的访问并在网页中显示数据库中所查询的图像。

5 结束语

本文所述的在JSP网页中通过调用JavaBean实现了对SQL Server2000数据库中图像文件存取的方法,已在实际应用中经过测试。为了最高效率的对数据库进行访问,还应该考虑用数据库连接池技术。

参考文献:

[1] 刘晓华,张健,周慧贞. JSP应用开发详解[M].电子工业出版社.2007

[2] 李伟民,何伟,李平. 基于Web的SQLServer数据库存取图片的Delphi实现[J].计算机工程与设计,2007(12):2943-2945.

[3] 于松涛. 精通SOL Server 2000 数据库管理与开发[M].北京:人民邮电出版社,2001.

[4] 古凌风. 用ADO技术实现数据库图像字段的存取[J].计算机工程与设计,2004,25(8):1388-1392.