JSP
为了正确导入程序包(Java.sql*),需要建立数据库联接。
<%@ page import="java.sql.*" %>
下面是用来联接Oracle数据库的字符串。
<%
String driver = "oracle.jdbc.driver.OracleDriver";
String dburl = "jdbc:oracle:thin:@faustus:1521:intra";
String dbuid = "spheres";
String dbpwd = "spheres";
%>
在这个例子中SQL(结构化查询语言)代码非常简单——返回表中数据:
String sql = "SELECT * FROM spheres";
一旦建立联接,下面的代码就会把数据库中所有的记录循环访问一遍并显示虚拟球。代码如下:
int count = 0;
while(rs.next()) {
color = rs.getString("color");
radius = rs.getString("radius");
%>
DEF sphere<%=count%> Transform {
translation <%=count*15%> 0 0
children [
Shape {
appearance Appearance {
material Material {
diffuseColor <%=color%> }
}
geometry Sphere {
radius <%=radius%>
} } ] }
<%
count++;
}
注意从数据库获得的数据是如何插入VRML中的。<%=color%>和<%=radius%>这两行VRML代码从数据库获得设定的颜色和半径值并将其显示出来。
转换过程用一个整数(count)来控制,它在循环中跟踪被访问的记录数,并控制在x轴方向每隔15单位显示一个虚拟球。
变量count还有另外一个用处。当产生虚拟球对象时,我们给它们命名为sphere1、sphere2……以此类推。这样,我们就可以用count在VRML中这样命名对象:
DEF sphere<%=count%>
清单C为文件db.jsp的内容。 |