有个JSP小程序,TOMCAT运行后显示:“the database loading fail! the database connection fail! the database operation fail! close the database fail! ”,请大家看看为什么没连上数据库(mysql)呢 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>JDBCDemo01</title>
</head>
<body>
<%!
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost/javabook";
String USERNAME = "root";
String DBPWORD = "19760113";
Connection conn = null;
String sql = null;
Statement stmt = null;
%><%
try
{
Class.forName(DBDRIVER);
}
catch(Exception e)
{
out.println("the database loading fail!");
}
try
{
conn = DriverManager.getConnection(DBURL,USERNAME,DBPWORD);
}
catch(Exception e)
{
out.println("the database connection fail!");
}
try
{
stmt = conn.createStatement();
sql = "insert into department (deptId,name,chairId,collegeId) values ('ART','Painting','111221120','SC')";
stmt.executeUpdate(sql);
}
catch(Exception e)
{
out.println("the database operation fail!");
}
try
{
stmt.close();
conn.close();
}
catch(Exception e)
{
out.println("close the database fail!");
}
%>
</body>
</html>
pageEncoding="ISO-8859-1"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>JDBCDemo01</title>
</head>
<body>
<%!
String DBDRIVER = "com.mysql.jdbc.Driver";
String DBURL = "jdbc:mysql://localhost/javabook";
String USERNAME = "root";
String DBPWORD = "19760113";
Connection conn = null;
String sql = null;
Statement stmt = null;
%><%
try
{
Class.forName(DBDRIVER);
}
catch(Exception e)
{
out.println("the database loading fail!");
}
try
{
conn = DriverManager.getConnection(DBURL,USERNAME,DBPWORD);
}
catch(Exception e)
{
out.println("the database connection fail!");
}
try
{
stmt = conn.createStatement();
sql = "insert into department (deptId,name,chairId,collegeId) values ('ART','Painting','111221120','SC')";
stmt.executeUpdate(sql);
}
catch(Exception e)
{
out.println("the database operation fail!");
}
try
{
stmt.close();
conn.close();
}
catch(Exception e)
{
out.println("close the database fail!");
}
%>
</body>
</html>
请确保3306端口号写上。
out.println("the database loading fail!");
修改为
out.println("the database loading fail!");e.printStackTrace();
你屏蔽了原始异常,没有办法查原因的
{
Class.forName(DBDRIVER);
}
catch(Exception e)
{
out.println("the database loading fail!\n" + e.printStackTrace() ); //看看具体是什么异常信息
}
怀疑是jar包没有加载到
CLASSPATH,这个是全局性最强的,整个操作系统生效;
JDK\jre\lib\ext,全局性仅次于于CLASSPATH,是跟随JDK有效,但装载优先级高于CLASSPATH;
然后就是javac和java启动时用参数来指定加载,IDE环境大多用此做法;
最后是应用包中通过类似于ContextRoot\WEB-INF\lib
初学者经常会用前几招,因为比较容易偷懒。但前两招因其容易引发JAR包冲突而饱受诟病。
2,端口,3306.好好看看吧,少年
1L+1