在J2EE环境搭建(一)中遗留下一个配置Tomcat数据源的问题,最近都在专心搞iOS的东西,由于J2EE布置了作业,所以又回过头来搞下J2EE。汗。。。

在这里我使用的是MySQL。

1.配置MySQL的JDBC驱动

(1)下载MySQL的JDBC驱动,这里用的是mysql-connector-java-5.1.17-bin.jar。

(2)将该jar文件复制到Tomcat的lib目录下。

2.下载安装MySQL

这里要求MySQL的版本在5.1以上,我安装的是mysql-essential-5.1.65-win32.msi。

在安装时选择Custom方式,到达配置时选择GBK编码方式,用户名root(默认),密码123456(自定吧)。

在安装完成后,可以打开MySQL安装目录下的my.ini文件进行查看修改:

例如这里的端口号是3306,默认的字符编码方式为GBK等。

然后在环境变量中配置数据库的路径:

%PATH%; F:\software\J2EE\MySQL\bin

之后可以打开MySQL的命令行查看,打开方式有多种:

方法一:可以在开始菜单中搜索MySQL,然后打开MySQL Command Line Client。

打开后输入密码123456即可:

方法二:也可以将bin目录下的mysql.exe(直接打开的话会闪退)复制一个快捷方式到某个盘中例如F盘,然后用cmd打开。注意直接输入mysql.exe由于没有密码是被拒绝访问的,因此必须输入用户名和密码:

然后输入

mysql> select version(), current_date; 

可以查看版本信息和当然日期。

输入

mysql>quit

可以退出MySQL程序,当然输入exit可以直接退出命令行窗口。

3.建立一个数据库和表

可以通过MySQL语句建立,可以通过sql成批处理导入脚本,也可以用图形界面的MySQL管理软件导入。

下面说说前面两种方法:

方法一:通过MySQL语句建立

像2那样打开mysql.exe,然后输入下列命令

1)创建并选择数据库javaee

mysql> CREATE DATABASE javaee;
mysql> USE javaee;

2)在javaee数据库中创建表格news_inf

mysql>create table news_inf
->( news_id int primary key auto_increment,
-> news_title varchar(255));

3)往表格news_inf中插入数据

mysql>insert into news_inf values
->(null , 'Jimmy Lee'),
->(null , 'is SB');

4)查看数据库的内容

mysql> USE javaee;
mysql> SHOW TABLES;

可以看到javaee中多了一个表格news_inf。

如果要删除数据库javaee,可以输入

drop database javaee;

方法二:直接导入脚本

首先建立一个sql文件,代码如下:

drop database javaee;
create database javaee;
use javaee; create table news_inf
(
news_id int primary key auto_increment,
news_title varchar(255)
); insert into news_inf
values
(null , 'Jimmy Lee'),
(null , 'is SB');

将该文件复制到一个便于使用的路径,例如F盘目录下。
然后打开mysql.exe,输入

mysql>source f:/test.sql;

之后可以看到命令行窗口输入Query OK等信息。

4.部署程序和配置局部数据源

(1)将程序部署到Tomcat中,方法有多种,在(一)中已经说过,这里不再赘述。

首先看看jsp程序的代码:

<%--
网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
author yeeku.H.lee kongyeeku@163.com
version 1.0
Copyright (C), 2001-2012, yeeku.H.Lee
This program is protected by copyright laws.
Program Name:
Date:
--%> <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ page import="javax.naming.*,java.sql.*,javax.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>测试Tomcat数据源</title>
</head>
<body>
<%
//初始化Context,使用InitialContext初始化Context
Context ctx=new InitialContext();
/*
通过JNDI查找数据源,该JNDI为java:comp/env/jdbc/dstest,分成两个部分
java:comp/env是Tomcat固定的,Tomcat提供的JNDI绑定都必须加该前缀
jdbc/dstest是定义数据源时的数据源名
*/
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/dstest");
//获取数据库连接
Connection conn=ds.getConnection();
//获取Statement
Statement stmt=conn.createStatement();
//执行查询,返回ResulteSet对象
ResultSet rs=stmt.executeQuery("select * from news_inf");
while(rs.next())
{
out.println(rs.getString(1)
+ "\t" + rs.getString(2) + "<br/>");
}
%>
</body>
</html>

这里直接使用了疯狂Java一书作者李刚先生的例子代码。这里的局部数据源对应的JNDI自定义名字为jdbc/dstest。

(2)修改当前工程的WEB-INF目录下的web.xml文件,在web元素中添加以下子元素:

<Resource name="jdbc/dstest"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javaee"
username="root"
password="123456"
maxActive="5"
maxIdle="2"
maxWait="10000"/>

其中name指定JNDI名字,driverClassName为该JNDI的类型。url指定其路径(3306为MySQL程序的端口,javaee为要访问的数据库),username和password要和自定的用户名密码匹配。其他信息以上代码注释已有详细说明。

作用是为本工程配置一个JNDI(Java命名和目录接口,用于为自己创建的Java对象命名)。

立即运行的话,会发现如下错误:

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

原因在于创建的JNDI在Tomcat的Context上下文环境中找不到该变量的声明。

(3)配置Tomcat的context.xml

因此还需要在Tomcat的conf目录下的context.xml中加入以上Resource元素。有些资料说还要在Catalina/localhost目录新建一个相应的xml文件,经验证是不需要的,这里参考了TOMCAT配置数据源

现在重启Tomcat的startup.bat,再打开本程序,即可看到数据库javaee中的news_inf表格中的内容:

以上是为Tomcat 7.0配置局部数据源的方法,也就是该数据源仅限于某一个工程中的程序使用,如果需要配置全局数据源,那么必须修改Tomcat的server.xml文件,引用教材的话:这样做可能导致破坏Tomcat系统,所以应该尽量避免使用全局数据源。

J2EE环境搭建(三)配置Tomcat 7.0的局部数据源的更多相关文章

  1. JavaWeb开发环境搭建Eclipse配置Tomcat

    转载请标明出处:http://blog.csdn.net/wu_wxc/article/details/48651251本文出自[吴孝城的CSDN博客] 工具: Eclipse官网下载:http:// ...

  2. Eclipse_luna_J2EE_For_JS+tomcat8.0环境搭建、配置、开发入门

    一.所有需要的软件.插件等下载地址 J2SE的官方下载路径:http://www.oracle.com/technetwork/java/javase/downloads/index.html Ecl ...

  3. ELK6.0环境搭建及配置

    ELK环境搭建及配置 ElasticSearch在5.x后的安装和插件的官方执行更好了,head插件官方默认集成在kibana的dev tools里,支持rpm包方式安装,x-pack安装后支持权限及 ...

  4. CentOS下j2ee环境搭建

    转自:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/01/2994485.html 因为是做j2ee后台开发的,所以在Linux上搭建 ...

  5. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  6. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

  7. Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说

    版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...

  8. Solr7.2.1环境搭建和配置ik中文分词器

    solr7.2.1环境搭建和配置ik中文分词器 安装环境:Jdk 1.8. windows 10 安装包准备: solr 各种版本集合下载:http://archive.apache.org/dist ...

  9. WinMail邮件服务器(客户端)环境搭建与配置

    WinMail邮件服务器(客户端)环境搭建与配置      一.在搭建WinMail邮件服务器(客户端)之前必备            (1).在虚拟机上安装两个干净无毒的操作系统          ...

随机推荐

  1. POJ 3259 Wormholes【最短路/SPFA判断负环模板】

    农夫约翰在探索他的许多农场,发现了一些惊人的虫洞.虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M≤2500)条路径 ...

  2. SVN版本控制软件

    一.版本控制软件 1.为什么需要版本控制软件 问题:① 团队开发 ② 异地协作 ③ 版本回退 2.解决之道 SCM(Software Configuration Management):软件配置管理 ...

  3. 拜拜了,GOPATH君!新版本Golang的包管理入门教程

    Go 1.11和1.12实现了对包管理的初步支持,Go的新依赖管理系统使依赖版本信息明确且易于管理.Using Go Modules - The Go Blog 新的包管理模式有什么不同? 作为Go语 ...

  4. UFO长啥样?--Python数据分析来告诉你

    前言 真心讲,长这么大,还没有见过UFO长啥样,偶然看到美国UFO报告中心有关于UFO时间记录的详细信息,突然想分析下这些记录里都包含了那些有趣的信息,于是有了这次的分析过程. 当然,原始数据包含的记 ...

  5. Flask实战第40天:图片验证码生成技术

    图片验证码生成 安装pillow pip install pillow 在utils下新建python package命名为captcha 把需要需要用到的字体放在captcha下 编辑captcha ...

  6. 34、Flask实战第34天:修改邮箱

    修改邮箱页面布局 新建cms/cms_resetemail.html {% extends 'cms/cms_base.html' %} {% block title %}修改邮箱-CMS管理系统{% ...

  7. UML功能模型(用例图)

        在UML系统开发中有三个主要的模型:功能模型(从用户角度展示系统的功能,包括用例图).对象模型(采用对象,属性,操作关联等概念展示系统的结构和基础,包括类图.对象图.包图).动态模型(展示系统 ...

  8. 洛谷P2782 友好城市

    题目描述 有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市.北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同.没对友好城市都向政府申请在河上开辟一条直线航 ...

  9. [Codeforces #211] Tutorial

    Link: Codeforces #211 传送门 一套非常简单的题目,但很多细节都是错了一次才能发现啊…… 还是不能养成OJ依赖症,交之前先多想想corner case!!! A: 模拟,要特判0啊 ...

  10. bzoj 1787: [Ahoi2008]Meet 紧急集合

    1787: [Ahoi2008]Meet 紧急集合 Description Input Output Sample Input 6 4 1 2 2 3 2 4 4 5 5 6 4 5 6 6 3 1 ...