向大家致以问候,感谢您查看我的帖子。我试图通过使用Mysql jdbc驱动程序将我的servlet与我的数据库连接。来自mysql jdbc驱动程序的 .jar 位于 apache-tomcat-7.0.27 / lib 文件夹中。 MyServlet是一个servlet,我在必须建立连接的同一文件夹中有SQL.java。
private static Connection conn = null;
Class.forName(driver).newInstance();
conn = (Connection)
DriverManager.getConnection("jdbc:mysql://"+"localhost:3306"+"/"+ "ergasia3", "root" , "spiros");`
不幸的是,当我尝试这样做时,我有一个错误: com.mysql.jdbc.Driver
。
这是我的web.xml
<web-app>
<display-name>WebApp01</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.srk.pkg.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet.do</url-pattern>
</servlet-mapping>
<resource-ref>
<description>database</description>
<res-ref-name>jdbc/ergasia3</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
现在我的context.xml
<Context path="/ergasia3" docBase="ergasia3"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/ergasia3" auth="Container"
type="javax.sql.DataSource"
user="root" password="spiros"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/ergasia3"
maxActive="15" maxIdle="3" />
</Context>
答案 0 :(得分:1)
不要将.jar放在Tomcat的lib中,将它放在你的应用程序lib文件夹中。所有外部.jars应该保留在这里。
答案 1 :(得分:0)
将你的jar放在WEB-INF \ lib
下答案 2 :(得分:0)
由于您已将数据库连接信息定义为tomcat中的资源而不是使用驱动程序管理器来创建连接,因此使用与以下内容类似的资源会更简单
// context used to create a datasource
Context dataSourceContext = new InitialContext();
// when you need a connection to the database
DataSource ds = (DataSource)dataSourceContext.lookup("java:comp/env/jdbc/ergasia3");
Connection conn = ds.getConnection();
此外,如前所述,Soumyadip,您应该将mysql jdbc驱动程序作为外部jar添加到Web应用程序而不是tomcat lib目录中,因为您的应用程序将查找其lib目录而不是tomcat lib目录包含mysql jdbc驱动程序的jar。如何执行此操作取决于您用于开发Web应用程序的IDE。