首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

JSP中运用JDBC访问Java DB数据库

2012-12-21 
JSP中使用JDBC访问Java DB数据库使用NetBeans JSP中使用JDBC访问Java DB数据库,首先了解一下Java DB数据库

JSP中使用JDBC访问Java DB数据库

使用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 ? ? ? ? ? ? ? ?SqlConnection

Statement ? ? ? ? ? ? ? ? SqlCommand

ResultSet ? ? ? ? ? ? ? ? ?SqlDataReader

另外还要引入Java DB的驱动程序的库(程序集),在添加库中选Java DB驱动程序即可。

对于下面代码,可以看出jdbc:derby://localhost:1527/MyFirstJavaDB就相当于连接字符串,它和Class.forName中的驱动程序,我们可以从服务里数据库连接的属性那里复制过来。

而驱动程序就位于我们添加的Java DB库里,我们可以在该程序集里找到org.apache.derby.jdbc的包。

?

 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);

.NET在中SqlCommand对象也可以通过SqlConnection对象创建:SqlCommand cmd=conn.CreateCommand();

热点排行