Jsp连接mySQL、Oracle数据库备忘(Windows平台)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

Jsp 环境目前最流行的是 Tomcat5.0。Tomcat5.0 自己包含一个 Web 服务器,如果是测试,就没必要把 Tomcat 与 IIS 或 Apache 集成起来。在 Tomcat 自带的 Web 服务器下可以进行 Jsp 测试。

    安装 Tomcat5.0 前需要安装 JDK(如果是 Windows server 2003 就必须安装 JDK,因为 Windows server 2003 是不带 JVM 的Windows server 2003 发行时 MS 和 SUN 刚好闹别扭呢)。安装完后,要设置几个环境变量:

    JAVA_HOME = E:\j2sdk1.4.2_04
    CLASSPATH = E:\j2sdk1.4.2_04\lib;E:\j2sdk1.4.2_04\lib\tools.jar
    Path 中加 .;E:\j2sdk1.4.2_04\bin;
    CATALINA_HOME = E:\Tomcat 5.0
    TOMCAT_HOME = E:\Tomcat 5.0

    解释如下:我的 JDK版本是 1.4.2,安装在 E:\j2sdk1.4.2_04 文件夹下。

    环境变量 JAVA_HOME 和 CATALINA_HOME 是一定要加的(至少参考资料都是这么说的)。CLASSPATH 也说要加,但是我没加似乎也没什么影响。Path 中加 “.;E:\j2sdk1.4.2_04\bin;”也一样,我不加 jsp 也能运行起来,但是在 DOS 窗口下手工编译 .java 类到 .class 文件有影响,因为找不到 javac.exe 编译命令文件。至于 path 中加的那个点“.”,我原来在 resin 下是需要的,在 Tomcat 下还没确定它是不是必须的。
    大家还发现 CATALINA_HOME 和 TOMCAT_HOME 的值是一样的,我估计 TOMCAT_HOME 是 Tomcat 的旧版本使用的,现在用的都是 CATALINA_HOME。不过这2个好象并不是不相容的,都加上,或者加其中任意一个,Jsp 都不手影响。不过我建议用一个 CATALINA_HOME 就算了。

    Tomcat5.0 设置虚拟路径比较方便了,因为可以在 Web 环境下管理。http://[url]:8080/admin 可以进入管理界面(管理员admin密码在 Tomcat 安装过程中可以设置),在 Tomcat Server-Service (Catalina)-Host (localhost)下可以添加 Context,类似于 IIS 里的虚拟路径:Document Base 指的是从实际 E:\Tomcat 5.0\webapps\ROOT 为起点的文件路径,Path 指的是从虚拟“/”开始的虚拟路径名,如“/mytest”。这里 Tomcat 好象设计的有点不完善,只要加了新的 Context,保存,再点“Commit Changes”按钮,再点Context 去看时,界面就会退到登录界面,但是有时页面就出错了,必须再次手工进入http://[url]:8080/admin。加了 Context,Apache Tomcat 服务必须“关闭/启动”一下(在Windows管理控制台的服务里)。有资料说在 http://localhost:8088/manager 管理界面下可以 Start 和 Stop 来重新启动对应的 Context,但是我 Stop 后就是 Start 不起来。点了一下 Undeploy,就把 Context 删除了,注意:把 Context 对应的物理文件夹也给删除了!!就是说你做了个应用,移到这里,如果不小心,就给删了-比病毒还厉害。小心啊!!

    下来我说一下 Jsp 连接 mySQL 的问题。如果用 Jsp 去连接 Access,我感觉就是把裙子穿在男人身上。Access 和 ASP 才是天造地设的一对。Jsp 连接 mySQL 或者 Oracle 才算合情合理。原因我认为是:用 Jsp 做开发,其优势就是跨 OS 平台,如果用 Jsp + Access 组合,跨平台的优势就没有了。ASP 和 Access 已经工作的很好了,也简单,你何必要别扭的去用 Jsp 开发?当然,如果您对 Jsp 非常熟悉(或者对 Asp 非常不熟悉),或者非常喜欢 Jsp(或者非常不喜欢 Asp),或者您有大量的数据积累在 Access 里,您要用 Jsp+Access 在技术上也不是不行的。
    mySQL 的安装非常简单,基本安装完毕都能正常使用,建立数据库,设置用户,都可以在 mySQL 的环境下完成。就是对用惯了 GUI 界面的人,感觉不顺手。网上能下载到一些 mySQL 的图形用户界面的管理工具,但好象不是免费的。

    用 Jsp 连接 mySQL 数据库,从表里取数据,写一段代码测试一下:

    程序代码1:
    <!–首先导入一些必要的packages–>
    <%@ page import=”java.io.*”%>
    <%@ page import=”java.util.*”%>
    <!–告诉编译器使用SQL包–>
    <%@ page import=”java.sql.*”%>
    <!–设置中文输出–>
    <%@ page contentType=”text/html; charset=GB2312″ %>

    <html>
    <head>
      <title>mySQL test</title>
    </head>
    <body>
    <%
      Connection con;
      Statement stmt;
      ResultSet rs;

      //加载驱动程序,下面的代码为加载MySQL驱动程序
      Class.forName(”com.mysql.jdbc.Driver”);

      //注册MySQL驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());

      //用适当的驱动程序连接到数据库
      //String dbUrl = “jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=GB2312″;
      //String dbUser = “root”;  //用户名
      //String dbPwd = “abcd1001″;  //密码
      //建立数据库连接
      //con = java.sql.DriverManager.getConnection(dbUrl, dbUser, dbPwd);

      String dbUrl =”jdbc:mysql://localhost:3306/mysql?user=root&password=abcd1001&useUnicode=true&characterEncoding=gb2312″;
      con = DriverManager.getConnection(dbUrl);

      //创建一个JDBC声明
      stmt = con.createStatement();

      //增加新记录
      //stmt.executeUpdate(”INSERT INTO books (id,name,title,price) VALUES (’999′,’Tom’,'Tomcat Bible’,44.5)”);

      //查询记录
      rs = stmt.executeQuery(”select * from user”);

      //输出查询结果
      out.println(”<table border=1 width=400>”);
      while (rs.next())
      {
      String col1 = rs.getString(1);
      String col2 = rs.getString(2);
      String col3 = rs.getString(3);
      String col4 = rs.getString(4);
      //打印所显示的数据
      out.println(”<tr><td>”+col1+”</td><td>”+col2+”</td><td>”+col3+”</td><td>”+col4+”</td></tr>”);
      }
      out.println(”</table>”);

      //关闭数据库连结
      rs.close();
      stmt.close();
      con.close();
    %>
    </body>
    </html>
    程序代码2:
    <%@ page contentType=”text/html;charset=gb2312″%>
    <%@ page import=”java.sql.*”%>
    <html>
    <body>
    <%
    Class.forName(”org.gjt.mm.mysql.Driver”).newInstance();
    String url =”jdbc:mysql://localhost/chclyb?user=root&password=abcd1001&useUnicode=true&characterEncoding=8859_1″;
    //testDB为你的数据库名
    Connection conn= DriverManager.getConnection(url);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql=”select * from test”;
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next()) {%>
    第一个字段内容为:<%=rs.getString(1)%>
    第二个字段内容为:<%=rs.getString(2)%><br>
    <%}%>
    <%out.print(”数据库操作成功,恭喜你”);%>
    <%rs.close();
    stmt.close();
    conn.close();
    %>
    </body>
    </html>

    我的以上 2 段代码都能工作。注意以上2段代码的 Class.forName(…) 部分的不同:

    Class.forName(”com.mysql.jdbc.Driver”);  //在程序代码1中
    Class.forName(”org.gjt.mm.mysql.Driver”).newInstance();  //在程序代码2中

    程序代码 2 中的代码是为了兼容 mySQL 的老版本而保留的,现在都用 Class.forName(”com.mysql.jdbc.Driver”); 驱动了。
    以上的代码拷贝到 Tomcat 的虚拟路径下能成功执行吗?恐怕不行。因为还有个重要的事情没有做:需要给 Tomcat5.0 安装 mySQL 的 JDBC 驱动程序!这个问题,网上的大多数文章都没讲,给贴一段连接 mySQL 的代码,就让我们去连接数据库了,连不上的!
    mySQL 的驱动需要从网上下载,下载完毕,拷贝到 E:\Tomcat 5.0\common\lib 路径下(我下载下来文件名是mysql-connector-java-3.2.0-alpha-bin.jar),把 Tomcat 服务来个Stop/start 安装就结束了。文件名可以改的,不影响使用,因为这是个压缩包,Tomcat 能自动认识到包里的内容,并把有关类注册进来。前面说的 Class.forName(…) 部分的不同可以在包里找到答案,因为包里正有 com/mysql/jdbc/Driver 和 org/gjt/mm/mysql/Driver 2 个路径,下面放的类文件是一样的。

    用 Jsp 连接 Oracle 数据库测试,就好说了,但是同样必须在 E:\Tomcat 5.0\common\lib 路径下拷贝和注册 Oracle 的 JDBC 驱动,这个驱动文件没必要在网上四处打听,显得很菜的样子(我当初就是这样!),这个文件在 Oracle 的 E:\oracle\ora90\jdbc\lib 路径下,文件名是 classes12.jar。我的示例代码如下:

    程序代码3:

    <%@ page contentType=”text/html;charset=gb2312″%>
    <%@ page import=”java.sql.*”%>
    <html>
    <body>
    <%
      Class.forName(”oracle.jdbc.driver.OracleDriver”);   //.newInstance();
      String url=”jdbc:oracle:thin:@10.0.1.1:1521:mydb”; //mydb为数据库的SID,10.0.1.1 为 数据库服务器 IP
      String user=”system”;
      String password=”abcd1001″;
      Connection conn= DriverManager.getConnection(url, user, password);
      Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
      String sql=”select * from test”;  //test 是表名,要先建立这个表,再送几条记录
      ResultSet rs=stmt.executeQuery(sql);
      while(rs.next())
      {
    %>
      第一个字段内容为:<%=rs.getString(1)%>
      第二个字段内容为:<%=rs.getString(2)%> <br>
    <%
      }
      out.print(”数据库操作成功,恭喜。”);

      rs.close();
      stmt.close();
      conn.close();
    %>
    </body>
    </html>

    关于 Oracle 数据库:我安装的是 Oracle9i 企业版(Windows server 2003 下),安装完毕后,Oracle 将占用 80 端口运行自带的 Apache1.3 Web服务器,还占用 8080 端口运行 TNSLSNR 服务(TNSLSNR.EXE文件在 X:\oracle\ora90\BIN 下),提供一些 log 及文档。所以建议安装 Oracle 的机器就不要安装 IIS 了,如果 IIS 先启动起来,Oracle 的 http 服务就不能启动了。也不能占用 8080 端口。问题是如果还安装 Tomcat,Tomcat 默认正好用的是 8080 端口,所以安装 Tomcat 时最好把端口设成别的值,如 8088。
    Oracle 里建立表,必须先建立表空间,还可以加一个数据文件(也可以不加,因为建立表空间时默认已经建了一个数据文件。以后可以视需要再添加)。再建立一个用户(以后的“方案”名和用户名一样)。建立表时,要选择表空间和方案名,最好把表建立在对应的方案下,把他们对应起来,以后好管理。如果把表建立在别的“方案”下,用 SQL*plus 语句访问时要用 [方案].[表名]的格式。

    稀稀拉拉说了这么多,是我的一些笔记类的东西。有些东西真的不太懂的,因为刚刚接触了一些非 Microsoft 的东西。希望高手指出我说的和理解不对的地方。新手也不要完全接收我的东西,多想一下,看在您的环境下,我说的能不能调试成功。













本文转自网眼51CTO博客,原文链接:http://blog.51cto.com/itwatch/286456,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
132 28
|
21天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回数据库
Oracle闪回数据库功能类似于“倒带按钮”,可快速将数据库恢复至 earlier 状态,无需还原备份。本文介绍了闪回数据库的使用方法及实战案例:包括设置归档模式、开启闪回功能、记录SCN号、执行误操作后的恢复步骤等。通过具体 SQL 操作演示了如何利用闪回数据库恢复被误删的用户数据。注意,使用此功能前需确保数据库为归档模式。
|
23天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle数据库的闪回表
本文介绍了Oracle数据库中的闪回表(Flashback Table)功能,它能够将表的数据快速恢复到特定时间点或系统改变号(SCN),无需备份。文章通过实战示例详细演示了如何使用闪回表恢复数据,包括授权、创建测试表、记录时间与SCN号、删除数据、启用行移动功能、执行闪回操作以及验证恢复结果等步骤。同时,还展示了如何通过触发器禁止插入操作,并在闪回过程中处理触发器的启用问题。文末附有视频讲解,帮助读者更好地理解闪回表的使用方法。
69 10
|
25天前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle数据库的闪回查询
本文介绍了Oracle数据库的闪回查询(Flashback Query)功能及其实际应用。闪回查询通过`AS OF`子句,结合时间戳或SCN号,可查询历史数据状态,帮助分析数据差异。文中通过具体示例演示了如何使用闪回查询:创建测试表、记录当前SCN号、更新数据并提交事务,最后通过闪回查询获取历史数据。附带的视频和代码块详细展示了操作步骤与结果。
|
26天前
|
Oracle 关系型数据库 数据管理
【赵渝强老师】Oracle数据库的闪回技术
在Oracle数据库操作中,难免会遇到误删表或提交错误事务等问题,可能导致数据丢失甚至数据库停止运行。传统解决方法依赖备份恢复,但需提前准备正确备份。为此,Oracle提供了闪回技术,无需备份即可快速恢复数据。它支持7种类型的操作,如闪回查询、版本查询、表恢复等,能有效应对逻辑损坏和用户错误。闪回技术基于还原(undo)数据管理,启用自动管理后可实现高效恢复。
|
27天前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle数据库的客户端工具
本文介绍了Oracle数据库的三种客户端工具:SQL*Plus、Oracle Enterprise Manager Database Express(EM)和SQL Developer的使用方法。首先通过命令行工具SQL*Plus登录数据库,创建用户并授权,建立部门与员工表,插入数据并查询;接着讲解了如何通过浏览器访问EM界面监控数据库及表空间状态;最后演示了SQL Developer的下载安装、连接配置以及执行查询的过程,帮助用户快速上手Oracle数据库管理与操作。
|
1月前
|
Oracle 关系型数据库 网络安全
崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB
文章是作者小草对崖山异构数据库迁移利器 YMP 的初体验分享,包括背景、YMP 简介、体验环境说明、YMP 部署(含安装前准备、安装、卸载、启动与停止)、数据迁移及遇到的问题与解决过程。重点介绍了 YMP 功能、部署的诸多细节和数据迁移流程,还提到了安装和迁移中遇到的问题及解决办法。
|
4月前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
234 11
|
4月前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
3天前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等