在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. mysql查看表结构,字段等命令

    mysql查看表结构命令,如下: desc 表名; show columns from 表名; describe 表名; show create table 表名;

  2. CodeForces 738E Subordinates

    排序,构造. 相当于告诉我们一棵树$n$个节点,每个节点在哪一层,至少需要移动多少个节点,才能让这些节点变成一棵树. 按照层次排个序移动一下就可以了,优先选择那些不是$s$但是层次是$0$的节点,如果 ...

  3. 牛刀小试之Django二

    model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层执行 ...

  4. 小试牛刀之Django

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  5. JSP2 自定义标签

    实现步骤 实现自定义标签的处理类继承javax.servlet.jsp.tagext.SimpleTagSupport,并重写doTag方法 建立标签库配置文件 在jsp中使用自定义标签 一个简单的标 ...

  6. ExtJs之列表常用CRUD

    前端代码: Ext.onReady(function(){ Ext.define('Person', { extend: 'Ext.data.Model', fields: [{name: 'id', ...

  7. 安卓 内存 泄漏 工具 LeakCanary 使用

    韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com LeakCanary是Square开源了一个内存泄露自动探测神器 .这是项目的github仓库地 ...

  8. DP套DP

    DP套DP,就是将内层DP的结果作为外层DP的状态进行DP的方法. [BZOJ3864]Hero meet devil 对做LCS的DP数组差分后状压,预处理出转移数组,然后直接转移即可. tr[S] ...

  9. JZYZOJ1378 [noi2002]M号机器人 欧拉函数

    http://172.20.6.3/Problem_Show.asp?id=1378日常懒得看题目怪不得语文差,要好好读题目了,欧拉函数大概是数论里最友好的了,不用解方程不用转换过来转换过去只需要简单 ...

  10. 用xib自定义UITableViewCell的注意事项——重用

    问题的提出: 有时候我们经常需要自定义tableView的cell,当cell里面的布局较为复杂时往往舍弃纯代码的方式而改用xib的方式进行自定义.当我们用纯代码的方式布局cell时,往往会在cell ...