数据库及信息管理本栏目责任编辑:闻翔军1引言随着网络的飞速发展,在网络上发布公司与个人的主页已成为一种时尚。
又加上电子商务的新浪潮,促使网站技术不断创新,尤其是服务器端程序语言更是日新月异,JSP是最受欢迎的一种网页程序语言。
大部分公司的网站和电子商务网站都需要利用数据库来存储重要的数据信息,对数据库中的数据进行查询、修改、更新、删除等操作是JSP访问数据库的基本操作,本文详细介绍了如何利用JSP和JDBC-ODBC桥访问SQLServer2000数据库的方法和技术。
2JSPJSP是JavaServerPages的简称,由SunMicrosystems公司倡导和许多公司参与共同建立的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。
JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。
与其它网页技术标准相比,JSP具有很多优势:一次编写,到处运行;系统的多平台支持;强大的伸缩性;多样化和功能强大的开发工具支持。
鉴于这些优势,许多程序员在编写网站程序时优先选择JSP技术。
但是JSP环境配置比较繁琐,对于初学JSP的人员来说,感觉无从下手,本文就详细介绍了配置JSP环境的详细步骤。
执行JSP代码首先需要进行JAVA运行环境安装和配置,它保证了JSP的跨平台性,可以从SUN公司的主页上查询并下载所需的软件进行安装;其次需要JSP引擎的安装(例:Tomcat),有时还需要配置IIS更为方便快捷地进行JSP网页编程。
JSP环境的配置稍微繁琐一些,相关资料请查阅网络上资料。
3JDBC-ODBCJSP访问SQLServer数据库的方法有多种,JDBC-ODBC桥是一种非常快速而直接的访问方式。
JDBCTM是一种用于执行SQL语句的JavaTMAPI(JDBC本身是个商标名,而不是一个缩写字;然而,JDBC常被认为是代表“Java数据库连接(JavaDatabaseCon-nectivity)”)。
它由一组用Java编程语言编写的类和接口组成,允许用户从Java应用程序中访问任何表格化数据源。
JDBC定义了一个底层的API,用来支持独立于任何特定SQL实现的基本SQL功能。
有了JDBC,各种关系数据库发送SQL语句就是一件很容易的事。
而且,使用Java编程语言编写的应用程序,就无须去忧虑要为不同的平台编写不同的应用程序。
将Java和JDBC结合起来将使程序员只须写一遍程序就可让它在任何平台上运行。
JDBC支持数据访问的两层模型(应用层、数据库层),也支持三层模型(客户层、中间层、数据源层)。
因此,JDBC不仅可以在应用程序中使用,也可以作为中间层服务器应用程序的一部分使用。
ODBC是OpenDatabaseConnectivity的缩写,即开放数据库互连,是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。
JDBC-ODBC是利用现有的ODBC,将JDBC翻译为ODBC的调用,使Java应用可以访问所有支持ODBC的数据库。
这种方法操作简单,本文以此种驱动方法为例来说明如何利用JDBC访问数据库。
访问的主要步骤如下:(1)加载JDBC驱动程序:JDBC的驱动管理器查找到相应的数据库驱动程序并加载。
常用的方法是在程序中使用Class.forName()方法动态装载并注册数据库驱动,在数据库的驱动程序加载后,就可以建立与该数据库的连接了。
(2)建立数据库连接:使数据库驱动连接到相应的数据库。
常使用DriverManager类的静态方法getConnection(Stringrul,Stringuser,Stringpassword)方法来完成。
其中,url是数据库连接串,指定收稿日期:2006-09-25作者简介:马宁(1973-),女,河北省唐山人,唐山师范学院计算机系应用教研室(主任),讲师,现主要从事计算机程序语言、计算机应用的教学与科研工作;邓先瑞(1973-),女,讲师,现在中国科学院攻读博士,主要从事现主要从事计算机程序语言、自动化的教学与科研工作;杜瑞庆(1974-),男,河北省赞皇县人,讲师,现主要从事计算机程序语言的教学与科研工作。
基于JSP的SQLServer数据库访问技术马宁,邓先瑞,杜瑞庆(唐山师范学院,河北唐山063000)摘要:随着网络和网络技术的飞速发展,网站编程语言也发展了很多,JSP是最受欢迎的优秀网页程序设言,本文详细介绍了利用JSP和JDBC-ODBC访问SQLServer数据库的方法和技巧,对于程序员方便快捷地编写跨平台的高水平网页程序有一定地参考价值。
关键词:网络;JSP;JDBC-ODBC;SQLServer数据库;平台中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)02-10323-02TechnologyofAccessingSQLServerDatabasesBasedonJSPMANing,DENGXian-rui,DURui-qing(TangshanTeachersCollege,Tangshan063000,China)Abstract:Withdevelopmentofwebandwebtechnology,programminglanguagesofwebhavemadearapidprogress.JSPisthefavoritelanguageforprogrammingwebpages.HowtouseJSPandJDBC-ODBCtoaccessSQLServerdatabasesisintroducedinthispaper,whichisusefulforprogrammerstoprogramtoplevelwebpagesthatcanworkonanyplatform.Keywords:web;JSP;JDBC-ODBC;SQLServerdatabase;platform323数据库及信息管理本栏目责任编辑:闻翔军使用的数据库访问协议及数据源;user和password分别是建立数据库连接所使用的数据库用户名和口令。
(3)执行SQL语句:在所建立的数据库连接上,创建Statement对象,将各种SQL语句发送到所连接的数据库执行。
对于已创建的数据库连接对象,调用createStatement()方法,就可得到一个Statement对象。
(4)处理结果集:ResultSet类的对象,是保存SQL的SELECT语句返回的结果记录的表。
结果集中通过游标控制具体记录的访问,游标指向结果集中的当前记录。
使用next()方法使游标可以移到下一行,并判断是否为最后一行,如果是则返回False,否则返回True。
(5)关闭数据库连接:数据库操作完毕后,要显式地关闭连接。
先释放Statement对象,再翻译连接对象。
4实例在学生信息数据库student.mdb中,有一个表stu,表结构如下:在JSP中用JDBC-ODBC连接数据库时,必须创建“系统DSN”数据源(Java编程中则不同,需要创建“用户DSN”数据源)。
本文实例中采用的“系统DSN”连接到student.mdb数据库,用户名为“sa”,为了方便调试而密码设为空(一般情况下密码不要设为空)。
在传统的HTML文件中加入Java程序段和JSP标记,就构成了JSP网页文件,其扩展名为“*.jsp”。
用户访问JSP网页时,向服务器发出请求;服务器接收到请求,首先执行其中的程序段,然后将执行结构以HTML格式返回给用户。
JSP标记有五种:(1)编译器指引<%@编译器指引%>一般用来导入一些必要的包;(2)预定义<%!预定义%>;(3)运算式<%=运算式%>在网页上显示变量的值;(4)程序代码<%程序代码%>;(5)注释<%--注释--%>。
4.1查询学生的部分信息<%@pagecontentType="text/html;charset=gb2312"lan-guage="java"errorPage=""%><%@pageimport="java.sql.*"%><%@pageimport="java.io.*"%><%@pageimport="java.lang.*"%><%@pageimport="java.util.*"%><body><%Stringurl="jdbc:odbc:stu";//数据库连接串Connectioncon;//创建数据库连接对象Stringsql;Statementstmt;//创建SQL语句执行对象StringstrNum,strName,strSex;intage,math,eng,spec;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}//加载和注册JDBC-ODBC桥驱动catch(ClassNotFoundExceptione){out.print("ClassNotFound");}try{con=DriverManager.getConnection(url,"sa","");//连接数据库stmt=con.createStatement();//得到Statement对象sql="select*fromstu";ResultSetrs=stmt.executeQuery(sql);//通过SQL查询得到结果集while(rs.next())//从结果集中获取学生信息并输出,可选择需要信息输出{strNum=rs.getString(1);strName=rs.getString("Name");strSex=rs.getString(3);math=rs.getInt("Math");out.println("Num="+strNum+"Name:"+strName+"math="+math+"<p>");}stmt.close();//关闭Statement对象con.close();//关闭连接}catch(SQLExceptionex){out.println("SQLException"+ex.getMessage());}%>如果要进行条件查询,直接将sql字符串改为条件查询语句即可。