根据官方网站Tomcat-Mysql连接池配置实例

官网地址
http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
========================================================================

我用的是apache-tomcat-6.0.16  mysql6.0.12

========================================================================


1.先从Mysql中新建数据库javatest,插入表testdata中数据
create database javatest;
use javatest;
create table testdata (id int not null auto_increment primary key,foo varchar(25), bar int);
insert into testdata values(null, 'hello', 12345);

====================================
context.xml

<Context path="/DBTest" docBase="D:/myeclipse_workspace/DBTest/WebRoot"
        debug="5" reloadable="true" crossContext="true">

  <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
               maxActive="100" maxIdle="30" maxWait="10000"
               username="root" password="pain" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>

</Context>
====================================
web.xml

    
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <description>MySQL Test App</description>
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/TestDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
</web-app>


====================================
test.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select id, foo, bar from testdata
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>
 
<c:forEach var="row" items="${rs.rows}">
    Foo ${row.foo}<br/>
    Bar ${row.bar}<br/>
</c:forEach>

  </body>
</html>

====================================
需要用到jstl.jar、mysql-connector-java-5.1.8-bin.jar、standard.jar包


http://localhost:8080/DBTest/test.jsp

====================================
最后JSP显示结果:
----------
Results
Foo hello
Bar 12345

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

此段是写给自己的,可以不看

不知道为何,不用Myeclipse可以显示正确,一用Myeclipse会出错,麻烦我两天的问题,竟然出现在Myeclipse身上。先改一下JRE环境,排除一下,看看是不是这个问题

1、window->preference->java-compiler->compiler compliance 设置compiler compliance level:为 1.6

2、window ->preference ->java ->Installed JRES里面把MYECLIPSE自带的删除,添加你自己的JDK

3、项目上右键/Preferences/Java Compiler 里改为1.5以上

至于为何为Myeclipse会出错,再找找看吧
========================================================================
用另一种JSP方法亦可
test2.jsp

<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*,com.DBConnection.*" %>
<%
try
{

   Context ctx = new InitialContext();
   DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TestDB");
   Connection conn = ds.getConnection();
} catch (NamingException e) {
   System.out.println(e.getMessage());
} catch (SQLException e) {
   e.printStackTrace();
}
out.println("connection pool connected !!haha");  
%>
========================================================================

dataSource="jdbc/TestDB" 和 (DataSource)ctx.lookup("java:comp/env/jdbc/TestDB") 是两种获得JNDI不同的方法,同样是可行的,不同之处,前者是硬连接,后者是虚拟的,后者可移植性比较好。

========================================================================

mysql-connector-java-5.1.8-bin.jar 放到D:/Program Files/apache-tomcat-6.0.16/lib下,我用的是tomcat6.总之放到lib下即可。jstl.jar,stand.jar放到DBTest/WEB-INF/lib下

context.xml中的docBase目录要可能改一下,改成test.jsp所在的实际目录。

还要修改context.xml中的username="root" password="root",把用户名和密码改成你自己Mysql的用户名和密码

其中名字的更改请看我的csdn博客painrthur:http://blog.csdn.net/paincupid/archive/2009/08/23/4474586.aspx

 

虽然这个小例子搞了整整两天,才搞定,不过也学到不少东西,真的快要吐了,不过也学到不少东西。希望以后能进步快一些。

 

实例下载:http://download.csdn.net/source/1598723

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

注意事项:

 

1. 把Myeclipse里的Tomcat的JDK设成现在的Java JDK路径。

我用的Myeclipse7:window-Perference-Myeclispe Enterprise Workbench-Servers-Tomcat-Tomcat 6.x-JDK设一下。

 

2.  把项目WEB-INF/lib下多余的包去掉,否则Tomcat重复加载会报以下错误:

An error occurred at line: 25 in the generated java file The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

 

改完这两项后,以前的项目能运行了,不知道为何。也不知道是不是这两处的原因,至少现在不会报错了。满足了......

 

============================================================================


============================================================================

 

============================================================================

网上还有一种配置context.xml的方法:

 

<Context>
<Resource
 name="jdbc/TestDB"
 auth="Container"
 type="javax.sql.DataSource"
 maxActive="100"
 maxIdle="30"
 maxWait="10000"
 username="root"
 password="pain"
 driverClassName="com.mysql.jdbc.Driver"
 url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;mysqlEncoding=utf8"/>
</Context>

 

这样写的好处是不用指定test.jsp的路径!

一\安装jdk 1\下载linux对应版本的jdk安装包 jdk-8u131-linux-x64.tar.gz 2\把安装包上传到linux服务器上 \root 3\首先确认一下你的linux服务器上面是否有安装过jdk rpm -qa|grep java rpm -qa|grep jdk 如果查询到已经安装过jdk就卸载 java rpm -e --nodeps 要卸载的文件名称 4\解压缩jdk安装 tar -xvf jdk-8u131-linux-x64.tar.gz -C /usr/local/ 5\进入到解压缩文件目录 传的 cd /usr/local 6\修改jdk解压缩后的目录mingc mv jdk1.8.0_131/ jdk rpm 7\配置环境变量 vi /etc/profile JAVA_HOME=/usr/local/jdk CLASSPATH=$JAVA_HOME/lib:. PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH 8\让环境变量立刻生效 source /etc/profile 9\测试java是否安装成功 java -version 二\mysql安装 cd 1\下载安装包,上传到服务器 mysql-5.7.20-1.el7.x86_64.tar.gz 2\首先确认一下你的linux服务器上面是否有安装过mysql rpm -qa|grep mariadb rpm -qa|grep mysql 如果查询到已经安装过jdk就卸载 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 3\解压缩安装包 tar -xvf mysql-5.7.20-1.el7.x86_64.tar.gz -C /usr/local/ 4\进入到解压缩目录 cd /usr/local/mysql 5\安装MySQL需要的类库包 perl \net-tools yum install perl net-tools -y 6\安装mysql的安装包 --千万要注意安装顺序 rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm 7\初始化MySQL数据库 ca mysqld --initialize 8\查看root密码 iFngLyRoE5+x cat /var/log/mysqld.log 在这个文件里面有root的临时密码 9\更改mysql数据库目录的所属主和所属组权限 chown mysql:mysql /var/lib/mysql -R 10\启动MySQL systemctl start mysqld systemctl stop mysqld //停止 systemctl restart mysqld //重启 systemctl enable mysqld //设定mysql服务随着系统启动自动启动 11\登录MySQL数据库 mysql -u root -p 输入密码: 出现mysql> //表示登录成功 12\修改root的密码 set password=password('123'); 13\修改MySQL数据库打开root账号远程连接 mysql -uroot -p mysql> update mysql.user set host='%' where user='root'; mysql> flush privileges; mysql>exit 14\配置防火墙规则 firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload 三\安装tomcat 1\上传tomcat安装包 apache-tomcat-8.5.15.tar.gz 2\解压缩Tomcat安装包 tar -xvf apache-tomcat-8.5.15.tar.gz -C /usr/local/ 3\进入到解压缩目录,修改tomcat的解压缩目录名称 cd /usr/local mv apache-tomcat-8.5.15/ tomcat 4\进入tomcat的启动目录 cd tomcat/bin 5\启动tomcat ./startup.sh 6\查看端口号是否监听 netstat -antp|grep 8080 7\增加tomcat的防火墙规则 firewall -cmd --zone=public --add-port=8080/tcp --permanent firewall -cmd --reload 8\配置管理控制台界面登录 (1)修改 tomcat/conf/tomcat-users.xml 在节点上增加如下配置: <role rolename="manager-gui"/> <user username="tomcat" password="123" roles="manager-gui"/> (2)修改 tomcat/wepapps/manage/META-INF/context.xml 把里面的内容注释: <!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\\\\\\\\.\\\\\\\\d+\\\\\\\\.\\\\\\\\d+\\\\\\\\.\\\\\\\\d+|::1|0:0:0:0:0:0:0:1" />--> (3)关闭tomcat tomcat/bin ./shutdown.sh (4)启动 ./startup.sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值