tomcat 连接 mysql

本文介绍如何在Red Hat Enterprise Linux 5环境下使用Tomcat 5.5.23和MySQL 5.0.41进行数据库连接,并提供了一个简单的JSP示例代码来展示如何查询数据库。
tomcat 版本apache-tomcat-5.5.23
mysql  版本 MySQL-server-community-5.0.41-0.rhel4.i386.rpm
OS redhat EL5
 
下载 mysql-connector-java-5.0.6-bin.jar 放到class路径里面就可以。
 
下面是简单测试jsp代码,注意数据库我添加了 密码
<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/mysql?user=root&password=mysql&useUnicode=true&characterEn
coding=8859_1";
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE
);
String sql="show tables";
ResultSet rs=stmt.executeQuery(sql);%>
<%while(rs.next()) {%>
<%=rs.getString(1)%>
<br>
<%}%>
<%rs.close();
stmt.close();
conn.close();
%>
执行这个jsp就应该看到默认的一些库表名了。
 
在配置 Tomcat 连接 MySQL 数据库时,主要涉及以下几个关键步骤: ### 3.1 配置 `context.xml` 文件 在 Tomcat 中配置数据库连接池通常需要修改 `context.xml` 文件。该文件通常位于 `conf` 目录下。以下是配置 MySQL 数据库连接池的典型方式,使用了 Tomcat 提供的 `org.apache.tomcat.jdbc.pool.DataSource` 实现: ```xml <Resource name="jdbc/MyDB" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC" username="your_username" password="your_password" maxActive="100" maxIdle="30" maxWait="10000" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"/> ``` 其中,`name` 属性定义了 JNDI 名称,可以在应用程序中通过该名称获取数据库连接;`driverClassName` 指定了 MySQL 的 JDBC 驱动类名;`url` 是数据库连接地址;`username` 和 `password` 分别是数据库的用户名和密码;`maxActive`、`maxIdle` 和 `maxWait` 等参数用于控制连接池的行为[^2]。 ### 3.2 配置 `web.xml` 文件 为了在 Web 应用中使用这个数据源,还需要在 `web.xml` 文件中添加相应的资源引用: ```xml <resource-ref> <description>MySQL Datasource example</description> <res-ref-name>jdbc/MyDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ``` 这段配置告诉 Tomcat 应用服务器,应用程序需要访问名为 `jdbc/MyDB` 的数据源,并且该数据源由容器管理。 ### 3.3 在 Java 代码中使用数据源 一旦配置完成,就可以在 Java 代码中通过 JNDI 查找来获取数据源并建立数据库连接: ```java import javax.naming.InitialContext; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; public class DBUtil { private static DataSource dataSource; static { try { InitialContext context = new InitialContext(); dataSource = (DataSource) context.lookup("java:comp/env/jdbc/MyDB"); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } } ``` 这段代码通过 JNDI 查找获取数据源对象,并通过该对象获取数据库连接。这种方式不仅简化了数据库连接的管理,还提高了应用程序的性能和可伸缩性。 ### 3.4 注意事项 - **驱动程序**:确保 MySQL JDBC 驱动程序(如 `mysql-connector-java`)已经添加到 Tomcat 的 `lib` 目录下,以便 Tomcat 能够加载该驱动程序。 - **字符编码**:在连接字符串中,可以添加 `characterEncoding=UTF-8` 参数以确保正确的字符编码。 - **SSL 配置**:如果不需要 SSL 连接,可以在连接字符串中添加 `useSSL=false` 参数。 - **时区设置**:MySQL 8.0 以后的版本可能需要指定时区,可以通过 `serverTimezone=UTC` 参数进行设置[^2]。 ### 3.5 示例代码 以下是一个完整的示例,展示了如何在 Java 代码中使用上述配置的数据源: ```java import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class UserDAO { public String getUserName(int userId) { String userName = null; String sql = "SELECT name FROM users WHERE id = ?"; try (Connection conn = DBUtil.getConnection(); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setInt(1, userId); try (ResultSet rs = stmt.executeQuery()) { if (rs.next()) { userName = rs.getString("name"); } } } catch (SQLException e) { e.printStackTrace(); } return userName; } } ``` 这段代码展示了如何使用数据源获取数据库连接,并执行一个简单的查询操作[^2]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值