日期:2014-05-16 浏览次数:20585 次
使用NetBeans JSP中使用JDBC访问Java DB数据库,首先了解一下Java DB数据库:Java DB是Sun公司的轻量级数据库。它却是一个先进的全事务处理的基于Java技术的数据库,它支持各类开放标准、触发器和存储程序。Java DB可以客户端服务器模式使用,也可以直接嵌入到一个Java应用程序中。在这些场合,Java DB都可以在同样的Java虚拟机(JVM)中运行,这就无需在应用程序之外单独购买、下载、安装或管理这个数据库。对于选择在生产中采用Java DB的客户,Sun将提供支持服务。
在NetBeans中使用Java DB:http://developer.51cto.com/art/200906/128011.htm
不过我用的是NetBeans 6.8的版本,安装完之后(连glassfish也一起安装),在glassfish的安装目录里也就安装了Java DB。然后在NetBeans的服务里的数据库里看看,也注册了Java DB。这时我们就可以点Java DB来创建Java DB数据库了,我们还可以在Java DB的属性中看到Java DB的安装路径,以及指定我们所创建的数据库的位置(SQLServer数据库中数据库默认的位置是SQLServer主文件的安装路径的data里,我们可以右击数据库服务器名(就是数据库里的根节点,一般为主机名\SQLEXPRESS)然后在服务器属性的数据库设置里指定数据库的位置)。创建完Java DB数据库以后在下面的数据库连接里就会出现一条连接(这就类似于在vs里创建SQLServer数据库,只不过vs中SQLServer数据库的连接形式是:服务器名.数据库名,实际上连接字符串中确定连哪个数据库也是这样的形式:如Data Source=.\SQLEXPRESS;Initial Catalog=TEST;Integrated Security=True;Pooling=False,Data Source指明数据库服务器名,Initial Catalog指明哪个数据库,而NetBeans中Java DB数据库的连接形式:如jdbc:derby://localhost:1527/MyFirstJavaDB,差不多就是路径的形式,而数据库的位置我们在上一部已经设置好了,事实上这差不多就相当于连接字符串,我们等会儿会用到)
下面写的数据驱动(提供)程序,在引入java DB的驱动程序库后,把这些数据驱动程序所在的包写出来
?
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
.NET中是把数据驱动程序写在链接字符串里的Provider=后面,只不过SQLServer数据库的数据驱动程序是默认的,不用专门写出来,而对于其他,如与OLE DB兼容的数据库,要写出其数据驱动程序:Provider=SQLODEDB;Access数据库:Provider=Microsoft.Jet.OLEDB.4.0;
现在直接上JSP代码:
?
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <% java.sql.Connection conn=null; java.lang.String mysql; java.sql.Statement cmd=null; java.sql.ResultSet reader=null; %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <% try{ Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); conn=java.sql.DriverManager.getConnection("jdbc:derby://localhost:1527/MyFirstJavaDB"); cmd=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); mysql="select * from student"; reader=cmd.executeQuery(mysql); %> <center>Student Course</center> <table> <tr> <td>ID</td> <td>NAME</td> <td>COURSE</td> <td>SCORE</td> <td>TeacherName</td> </tr> <%while(reader.next()){%> <tr> <td><%=reader.getString("SID")%></td> <td><%=reader.getString("SNAME")%></td> <td><%=reader.getString("COURSE")%></td> <td><%=reader.getString("SCORE")%></td> <td><%=reader.getString("TNAME")%></td> </tr> <%}%> </table> <% } catch(java.sql.SQLException e) { out.println(e.toString()); } finally{ if(reader!=null)reader.close(); if(cmd!=null)cmd.close(); if(conn!=null)conn.close(); } %> </body> </html>
?
?整个过程跟ASP.NET基本差不多,有些对应关系如下:
?? ? java ? ? ? ? ? ? ? ? ? ? ? ? ? ?.net
?
Connection ? ? ? ? ? ?