我尝试在运行在tomcat上的jsp中创建一个简单的示例连接到mysql数据库。
运行下面的代码我得到了响应:没有为jdbc找到合适的驱动程序:mysql:// localhost / TestingDB
<HTML>
<HEAD><TITLE>Testing mysql</TITLE></HEAD>
<BODY>
<%@ page import = "java.sql.*"%>
<%
String url = "jdbc:mysql://localhost/TestingDB";
String user = "mysql";
String password = "pwd";
try {
Connection con = DriverManager.getConnection(url, user, password);
out.println("Success");
Statement st = null;
ResultSet rs = null;
st = con.createStatement();
rs = st.executeQuery("SELECT * FROM TestTable");
while(rs.next()){
out.println(rs.getString("String1"));
}
} catch (Exception e) {
out.println(e.getMessage());
e.printStackTrace();
}
%>
</BODY>
</HTML>
我已将mysql-connector-java-5.1.xx-bin.jar放在CATALINA_HOME / lib目录中,当它无法正常工作时,我尝试将其放在{appname} / WEB-INF / lib目录中。
我已经使用 services tomcat 重启在每次尝试之间重新启动了tomcat。
访问数据库应该没有任何问题,因为它可以在独立的java类中使用(几乎)相同的代码。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
class JDBCTest {
private static final String url = "jdbc:mysql://localhost/TestingDB?useSSL=false";
private static final String user = "mysql";
private static final String password = "pwd";
public static void main(String args[]) {
try {
Connection con = DriverManager.getConnection(url, user, password);
System.out.println("Success");
Statement st = null;
ResultSet rs = null;
st = con.createStatement();
rs = st.executeQuery("SELECT * FROM TestTable");
while(rs.next()){
System.out.println(rs.getString("String1"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我真的没想到了。欢迎大家帮忙!
答案 0 :(得分:3)
我已将mysql-connector-java-5.1.xx-bin.jar放在CATALINA_HOME / lib目录中
这应该可行,但您必须在测试之前重启Tomcat。
当它不起作用时我试着将它放在{appname} / WEB-INF /目录中。
错误。应该是{appname}/WEB-INF/lib
目录。
您应该如何将此数据库定义为META-INF / context.xml中的资源,并通过java:comp/env/jdbc
命名空间上的JNDI查找从Tomcat获取它。你正在做的是糟糕的做法。
答案 1 :(得分:-1)
您忘记将该端口放入URL访问权限。
以下是连接网址的简单示例:
JDBC:MySQL的://本地主机:的 3306 强> / TestingDB;