您现在的位置:首页 >> 前端 >> 内容

Tomcat+JSP+Oracle信息查询系统开发笔记(2)

时间:2017/6/12 9:23:52 点击:

  核心提示:上一篇讲解了Tomcat的安装以及配置,本篇讲解查询系统中核心部分,数据库链接以及查询操作的实现。由于数据库操作部分为java而非HTML/javascript,所以需要在页面开头处写入以下代...

上一篇讲解了Tomcat的安装以及配置,本篇讲解查询系统中核心部分,数据库链接以及查询操作的实现。

由于数据库操作部分为java而非HTML/javascript,所以需要在页面开头处写入以下代码。

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page 
 import="java.sql.Connection"
 import="java.sql.ResultSet"
 import="java.sql.SQLException"
 import="java.sql.Statement"
 %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

在HTML页面中嵌入java代码需要用<% %>包裹起来,上述代码的功能是引入java关于数据库操作的库。

一般查询操作页面虽然也以.jsp后缀名保存,但不显示在前台。并且页面中几乎都为java代码,所以HTML代码部分可省略至仅保留两个标签。

接下来讲解链接数据库以及进行查询、显示操作的java代码。

 Connection con;
 Statement stmt;
 ResultSet rs;

声明后面会使用的变量。否则会出错。

为了保证代码能处理异常,需要引入try/catch结构,如下图所示。

try{
  out.println('all is well');
}
catch(Exception e){out.println(e.getMessage());}

引入Oracle的jdbc驱动,并取得所连接到的数据库的url,数据库名称,登录用户名以及密码。其中url信息可在本机Oracle安装文件夹下找到。

 Class.forName("oracle.jdbc.driver.OracleDriver");
 java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

 String dbUrl="jdbc:oracle:thin:@1.1.1.1:1521:dbl";
 String dbUser="god";
 String dbPwd="god";
 con=java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);

 stmt=con.createStatement();

本身开发的这个信息查询系统是关于ipv4地址信息的,输入一个ip地址,输出数据库中若干个表中的isp信息,省市信息。其中ip地址只需要输入前三段,因数据库中的ip地址最后一段均为1,对传入的ipname进行字符串处理以其为条件进行查询操作。

  String ipname = request.getParameter("ip_name");
  ipname += ".1";
  out.println("
"); //插入一个空行
  out.println("");
  out.println("");

ipname为查询界面传出的ip地址字符串。随即输出表格的HTML代码。表格的其他参数由下列代码在head标签中定义,使用css代码而非html代码对其进行修饰。

最后为查询操作与打印表格的代码,使用较为简单的sql语句即可完成多表的查询,即一条语句查询一个表,需要注意的是sql查询语句为字符串,其变量名需要因查询的表不同而不同,否则会报错。

另外sql查询为空时会返回null值,需要对其进行处理变为空格。

表格打印完毕后关闭与数据库的链接并销毁变量。

  //A数据库
 String sqla="select * from A where ip="+"'"+ipname+"'";
 rs=stmt.executeQuery(sqla);  //rs为sql查询后获得的列表
 while(rs.next())
 {
 String col1="A库";
 String col2=rs.getString(2);
 String col3=rs.getString(4);
 String col4=rs.getString(6);
 out.println("
"); } //B数据库 String sqlb="select * from B where ip="+"'"+ipname+"'"; rs=stmt.executeQuery(sqlb); while(rs.next()) { String col1="B库"; String col2=rs.getString(2); String col3=rs.getString(3); if (col3 == null) col3 = " "; String col4=" "; out.println(""); } out.println("
数据源 省份 城市 ISP
"+col1+" "+col2+" "+col3+" "+col4+"
"+col1+" "+col2+" "+col3+" "+col4+"
"); rs.close(); stmt.close(); con.close();

整个流程可类比一个冷笑话“如何将大象装进冰箱”,打开冰箱——装进大象——关上冰箱。本例中链接的数据库是Oracle,对于MySQL也是类似的过程与代码,只需要更改jdbc驱动部分的代码即可。

Tags:TO OM MC CA 
作者:网络 来源:不详