弄了个数据库的连接,思路很简单,但是出错了,检查来检查去唔知有什么问题,请各位看看,一共三个JSP,一个为factorydb.jsp,用于数据库连接,一个stubiz.jsp用于操作数据库,一个list.jsp用于显示页面,我用MyEclipse8.5操作执行,代码如下:   factory.jsp<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%!
public static Connection getConnection(){
String user="root";
String pwd="root";
String url="jdbc:mysql://localhost/stu?characterEncoding=UTF-8";
Connection con=null;
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){
System.out.println("数据库连接失败");
}
try{
con=DriverManager.getConnection(url,user,pwd);
}catch(Exception e){
System.out.println("数据库连接失败");
}
return con;
}

public boolean executesql(String sql){
Connection conn=getConnection();
boolean flag=false;
Statement stmt=null;
try{
stmt=conn.createStatement();
stmt.executeUpdate(sql);
flag=true;
}catch(Exception e){
e.printStackTrace();
}
finally{
close(stmt,conn);
}
return flag;
}

public static void close(ResultSet rs,Statement stmt,Connection conn)
{
close(rs);
close(stmt);
close(conn);
}

public static void close(Statement stmt,Connection conn)
{
close(stmt);
close(conn);
}

public static void close(Connection conn){
try{
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}

public static void close(ResultSet rs){
try{
if(rs!=null){
rs.close();
}
}catch(Exception e){
e.printStackTrace();
}
}

public static void close(Statement stmt){
try{
if(stmt!=null){
stmt.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
 %>stubiz.jsp<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>
<%@ include file=factorydb.jsp %>
<%!
public List getAllStudent(int model,String id)throws Exception{
List lst=new ArrayList();
Connection conn=getConnection();
String sql="";
if(model==0)
sql="select * from student";
else
sql="select * from student where id="+id;
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery(sql);
while(rs.next())
{
String[] str=new String[4];
str[0]=rs.getInt("id")+"";
str[1]=rs.getString("name");
str[2]=rs.getString("classGrent");
str[3]=rs.getString("result");
lst.add(str);
}
return lst;
}

public boolean insert(String name,String grent,String result)
{
String sql="insert into 'student'('name','classGrent','result')values('"+name+"','"+grent+"','"+result+"')";
return executesql(sql);
}

public boolean delebyId(String id)
{
String sql="delete from student where id="+id;
return executesql(sql);
}

public boolean update(String id,String name,String grent,String result)
{
String sql="update student set name='"+name+"',classGrent='"+grent+"',result='"+result+"' where id="+id;
System.out.println(sql);
return executesql(sql);
}

public String[] getStuById(String id)throws Exception{
return (String[])getAllStudent(1,id).get(0);
}
 %>
list.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="stubiz.jsp" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP 'list.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
  </head>
  
  <body>
    <p>添加
</p>
<table width="451" border="1">
<tr>
    <th >姓名</th>
    <th >班级</th>
    <th >成绩</th>
    <th >修改</th>
    <th >删除</th>
  </tr>
  <%
   List lst=getAllStudent(0,"");
for(int i=0;i<lst.size();i++){
String[] str=(String[])lst.get(i);
%>
  <tr>
    <td><%=str[1]%></td>
    <td><%=str[2]%></td>
    <td><%=str[3]%></td>
    <td>修改</td>
    <td>删除</td>
  </tr>
  <%
}
%>
</table>
<p>&nbsp;</p>
  </body>
</html>

解决方案 »

  1.   

    try{
    Class.forName("com.mysql.jdbc.Driver");
    }catch(Exception e){
    System.out.println("数据库连接失败");
    }
    try{
    con=DriverManager.getConnection(url,user,pwd);
    }catch(Exception e){
    System.out.println("数据库连接失败");
    }
    这两个东西不要分开写
    还有端口不要搞忘了
      

  2.   

    try{
    Class.forName("com.mysql.jdbc.Driver");
    }catch(Exception e){
    System.out.println("数据库连接失败"+e.toString());
    e.printStackTrace();
    }
    try{
    con=DriverManager.getConnection(url,user,pwd);
    }catch(Exception e){
    System.out.println("数据库连接失败"+e.toString());
    e.printStackTrace();
    }看看具体的错误信息。
      

  3.   

    没用啊,它居然弹出这样的信息type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /db_counter.jsp(3,48) quote symbol expected
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
    org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:200)
    org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:150)
    org.apache.jasper.compiler.Parser.parseUseBean(Parser.java:955)
    org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1138)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1448)
    org.apache.jasper.compiler.Parser.parse(Parser.java:133)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.