我在Eclipse中创建了一个使用MySQL数据库的Java Web应用程序。但现在我需要在Tomcat服务器上部署该Web应用程序。我知道如何部署没有数据库的Web应用程序,但需要数据库方面的帮助。
谢谢您提前的帮助。我在Eclipse中创建了一个使用MySQL数据库的Java Web应用程序。但现在我需要在Tomcat服务器上部署该Web应用程序。我知道如何部署没有数据库的Web应用程序,但需要数据库方面的帮助。
谢谢您提前的帮助。在Java Web应用程序中获取JDBC连接有两种主要方式。
JNDI
使用JNDI需要在tomcat中创建一个连接池。这可以在tomcat的config
目录中的context.xml文件中完成。
示例Context.xml条目
<Resource name="jdbc/EmployeeDB"
auth="Container"
type="javax.sql.DataSource"
username="dbusername"
password="dbpassword"
driverClassName="org.hsql.jdbcDriver"
url="jdbc:HypersonicSQL:database"
maxActive="8"
maxIdle="4"/>
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)
envCtx.lookup("jdbc/EmployeeDB");
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();
手动创建
在您的代码中手动创建连接更简单,但是出于可移植性考虑,建议使用JNDI。
手动示例
public class MysqlConnect{
public static void main(String[] args) {
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "jdbctutorial";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "root";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Class.forName()
定义连接 - 在这种情况下,您只需要确保包含驱动程序的jar文件在类路径中即可。这是首选方法 - 在服务器上定义数据源,并通过使用JNDI API在代码中调用它:
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("jdbc/testDS");
conn = ds.getConnection();