Connector
,代码如下:
public class Connector {
private static final String dbURL = "jdbc:mysql://localhost:3306/";
private Connection con;
public Connector(String userName, String password) {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection(dbURL, userName, password);
} catch (SQLException e) {
e.printStackTrace();
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (Exception e) {
System.err.print("Unidentified exception has acurred!");
e.printStackTrace();
}
}
当我在同一个名为portal的不同类中使用它时,它运行正常,但是当我尝试在包servlets
中的servlet中使用它时,名为{{ 1}},我得到ClassNotFoundException。
Class位于所有类的构建路径中,我通过尝试从servlet导入它来检查它,但是当我创建新实例时,它没有被识别。我试图将servlet移动到连接器的包中,反之亦然,它并没有影响。这是servlet的代码:
LoginHandle.java
抱歉,如果我的英语不好,或者缺少详细信息
答案 0 :(得分:0)
您的驱动程序不在服务器类路径中,构建路径与此无关。 您没有编写您正在使用的应用程序服务器。您还应该在servlet中使用DataSource,而不是DriverManager。 Here是Tomcat的示例配置。
更新
对于Tomcat 7,您需要执行以下操作:
将mysql jar放入$CATALINA_HOME/lib
在上下文中配置Datasource
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="user" password="pass"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/databaseName"/>
在servlet中使用Datasource(伪代码)
@WebServlet("/LoginHandle")
public class LoginHandle extends HttpServlet {
private static final long serialVersionUID = 1L;
@Resource(lookup="jdbc/testDB")
private DataSource ds;
...
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection c = ds.getConnection();
...