JSP初级教程--JSP初学者入门之三

网络整理 - 07-27

  第三章 连接数据库

  接着我想做一个jsp的留言板之类的东西:有登录验证、注册、发表文章、浏览文章、管理文章、管理用户等这些功能。

  首先,登录验证这个不难,但是有个问题:需要连接数据库了。于是我开始查找资料,并安装了Oracle数据库(对于Oracle数据库的一些最基本的知识我就不在这里说明了,但是需要注意的两点是:

  一、安装完成后就不要再改变你的机器名,一旦改了再改回来,数据库也用不了;

  二、安装完后不要使用Windows优化大师的清理注册表垃圾的功能,它会删掉一个有用的注册表信息导致Oracle的监听无法启动),最后写了这个文件:

  -----------------------------link.jsp-----------------------------------------

  <%@ include file="include.inc"%>

  <%@ page contentType="text/html;charset=gb2312"%>

  <html>

  <body>

  <%

  Connection con = null;

  Statement stmt = null;

  ResultSet rs = null;

  try

  //有try就至少要有一个catch或finally

  {

  Class.forName(CLASSFORNAME);//载入驱动程式类别

  con=DriverManager.getConnection(SERVANDDB);//建立数据库连接

  stmt=con.createStatement();

  String sql="select * from infom";//infom是表名

  rs=stmt.executeQuery(sql);

  while(rs.next())

  {

  out.println(rs.getString(1));//1就是第一个字段,第一个字段的名是username,所以这段也可以写成:rs.getString("username")

  out.println(rs.getString(2));

  }

  out.println("<br>成功!");

  }//try结束

  catch(Exception e)

  //当try里运行出错时,运行catch里的内容

  {

  out.println(e);//输出错误信息

  }

  finally

  //不论是否出错、结果怎样,都要运行finally里的内容

  //向下为关闭数据库连接

  {

  if (rs!=null)

  rs.close();

  if (stmt!=null)

  stmt.close();

  if (con!=null)

  con.close();

  }

  %>

  </body>

  </html>

  ---------------------------------------------

  Class.forName(CLASSFORNAME);

  con=DriverManager.getConnection(SERVANDDB);

  这两句无疑是很重要的,可是CLASSFORNAME、SERVANDDB这两个变量是什么呢?它们都来自<%@ include file="include.inc"%>这句里的include.inc文件,该文件与link.jsp在同一目录下。

  -----------------------------------include.inc------------------------------------

  <%@ page import="java.sql.*"%>

  <%@ page import="java.util.*"%>

  <%@ page import="java.io.*"%>

  <%@ page import="oracle.jdbc.driver.OracleDriver"%>

  <%@ page import="java.lang.*"%>

  <%

  request.setCharacterEncoding("gb2312");

  String CLASSFORNAME="oracle.jdbc.driver.OracleDriver";//定义载入驱动程式的字符串

  String SERVANDDB="jdbc:oracle:thin:name/password@ringz:1521:rock";//定义建立数据库连接的字符串

  //name是数据库的用户名;password是该用户的密码;ringz是我的机器名;rock是SID

  %>

  ----------------------------------------------

  假如你用的是Oracle的数据库的话,现在你运行这个文件还是会出错,因为Tomcat服务器找不到Oracle的JDBC驱动,你需要甲骨文(oracle)公司提拱的一个包:classes12.jar,

  你可以在D:oracleora92jdbclib下找到它,然后把它放到D:Tomcat 5.0commonlib下,

  好了,现在应该可以了。