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 的东西。希望高手指出我说的和理解不对的地方。新手也不要完全接收我的东西,多想一下,看在您的环境下,我说的能不能调试成功。

我的其他文章在我的个人网站上:“十万个为什么”电脑学习网:http://www.why100000.com

Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)的更多相关文章

  1. 在64位Win7中使用Navicat Premium 和PL\SQL Developer连接Oracle数据库备忘

    最近接手了一个项目,服务器端数据库是oracle 11g 64位.由于主要工作不是开发,也不想在自己的电脑上安装庞大的oracle数据库,因此寻思着只通过数据库管理工具连接数据库进行一些常用的查询操作 ...

  2. jdbc连接mysql/oracle数据库

    driver-class-name : com.mysql.jdbc.Driver url : jdbc:mysql://localhost:3306/数据库名 username:   root pa ...

  3. 空间数据导入Oracle数据库备忘

  4. 一个简单的JSP 连接MySQL使用实例

    一.软件环境 下载并安装MySQL,Tomacat,JDBC.MyEclipse或其他IDE. 二.环境配置 将其环境变量配置好之后,下载Java 专用的连接MySQL的驱动包JDBC,有人会发现在一 ...

  5. JSP连接MySQL数据库问题

    之前写了一大段,还说了一下具体JDBC连接数据库API的具体包的基本知识,哪知道自己手残不小心按了删除按钮.结果去看自动保存记录时,就只剩下下面这段了.好吧,其实最主要最核心的也就是下面这点了.具体如 ...

  6. Jsp连接Mysql数据库取数方法

    我将Jsp连接Mysql数据库方法整理如下,供大家学习交流! 1.首先在myslq数据库中新建mldn数据库,并新建emp表.(方法不展开介绍) 插入数据如下: create table `emp` ...

  7. java web 程序---jsp连接mysql数据库的实例基础+表格显示

    <%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="g ...

  8. 【转】Oracle SQL Developer 连接 Mysql 等数据库

    原文地址:http://blog.163.com/cuixiao_yan/blog/static/319232442009102882651869/ Oracle SQL Developer 个人感觉 ...

  9. 通过MSSQL连接服务器连接至Oracle数据库

    前言 有很多时候,我们需要MSSQL与Oracle进行跨库查询或数据交互.本篇随笔将阐述如何通过MSSQL的连接服务器连接至Oracle数据库,并且读取数据的示例. 具体步骤 首先需要到Oracle的 ...

随机推荐

  1. AndroidManifest.xml中的application中的name属性

    被这个不起眼的属性折磨了一天,终于解决了. 由于项目需要,要合并两个android应用,于是拷代码,拷布局文件,拷values,所有的都搞定之后程序还是频频崩溃,一直没有找到原因,学android时间 ...

  2. (一一五)利用NSKeyedArchiver实现任意对象转为二进制

    [应用背景] 在数据库中存储数据时,如果对象过于复杂,又不必要创建复杂的表,可以直接把整个对象转化为二进制存入数据库字段,然后取出后再还原即可. [实现方法] 在PHP中,使用序列化和反序列化可以实现 ...

  3. Cocos2D iOS之旅:如何写一个敲地鼠游戏(九):创建动画

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  4. 【一天一道LeetCode】#237. Delete Node in a Linked List

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Write a ...

  5. JSP标签JSTL(2)--流程控制

    对于流程控制,单纯的用jsp脚本,显得很是繁琐,尤其是遇到if判断的时候,写代码的时候就需要特别的小心,因为极有可能会出现符号不匹配的状况.但是利用标签语言就会大大的改善这一状况. 流程控制 if标签 ...

  6. 1020. Tree Traversals (25) -BFS

    题目如下: Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder ...

  7. Cocos2D:塔防游戏制作之旅(三)

    整合炮塔资源 为了快速开始,我们为你创建了开始的项目.它包括了一个空白的Cocos2D项目以及大多数你将在教程中使用到的资源. 所以首先下载该 开始项目 并且解压缩到你指定的位置中去. 注意:该项目的 ...

  8. Mybatis源码之(TypeAliasRegistry)TypeAlias别名实现机制

    在Mybatis编程中我们经常会用到将某个bean作为参数类型parameterType或者结果返回值类型ResultType,所以很多时候我们需要把完成的Bean的包名在mapper文件中写上,如下 ...

  9. TableEdit&nbsp;UI_10

    1.tableView的编辑的步骤:  1.让tableView处于编辑状态,(默认所有的cell都处于编辑状态,默认下的编辑样式是删除) 2.设置哪些cell可以编辑  3.设置编辑的样式(删除,插 ...

  10. C语言中,#include <>和#include ""的区别和注意点

    C语言中包含文件有两种包含符号,一个是<>尖括号,另一个是""双引号.那么这两个有什么区别呢? 首先在本地建立一个空文件,命名为stdio.h. 然后再建立一个C文件, ...