用JDBC访问数据库的问题
我想在打印出数据库web中的所有内容,代码如下(已添加jdbc驱动包)
一个与数据库连接的javabean DBcon.java
- Java code
package mypack;import java.sql.Connection;import java.sql.DriverManager;public class DBcon { public Connection conn=null; public Connection getConnection() { String Driver="com.mysql.jdbc.Driver"; String Url="jdbc:mysql://localhost:3306/test"; //System.out.println("建立连接"); try{ Class.forName(Driver); /* 加载驱动 */ /* 连接数据库*/ conn=DriverManager.getConnection( Url,"root","1234"); //System.out.println("success"); }catch(Exception e) { System.out.println("runtime"); //throw new RuntimeException(e); e.printStackTrace(); } return conn; } public static void main(String args[]) { DBcon con=new DBcon(); con.getConnection(); }} 一个用户属性的Javabean People.java
- Java code
package mypack;public class People { String name; String hometown; //户籍 String local; //高校所在地 String university; //就读高校 String highschool; //曾读高中 String major; //专业 String grade; //年纪 public void setName(String name) { this.name=name; } public String getName() { return name; } public void setHometown(String hometown) { this.hometown=hometown; } public String getHometown() { return hometown; } public void setLocal(String local) { this.local=local; } public String getLocal() { return local; } public void setUniversity(String university) { this.university=university; } public String getUniversity() { return university; } public void setHighschool(String highschool) { this.highschool=highschool; } public String getHighschool() { return highschool; } public void setMajor(String major) { this.major=major; } public String getMajor() { return major; } public void setGrade(String grade) { this.grade=grade; } public String getGrade() { return grade; }}一个访问数据库得到所有数据的javabean Getall.java
- Java code
package mypack;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;public class Getall { People[] sb; int num; public Getall() { num=0; sb= new People[100]; } public void loop() { DBcon db=new DBcon(); Connection conn=db.getConnection(); PreparedStatement pstmt; String sql="select * from web "; ResultSet rs; try{ pstmt=conn.prepareStatement(sql); rs=pstmt.executeQuery(); while(rs.next()){ sb[num].setName(rs.getString("name")); sb[num].setHometown(rs.getString("hometown")); sb[num].setLocal(rs.getString("local")); sb[num].setUniversity(rs.getString("university")); sb[num].setHighschool(rs.getString("highschool")); sb[num].setMajor(rs.getString("major")); sb[num].setGrade(rs.getString("grade")); System.out.println("name:"+sb[num].getName()); num++; } }catch(Exception e){ e.printStackTrace(); } } }
最后一个简单的jsp页面 index.jsp
- Java code
<%@ page language="java" contentType="text/html; charset=GBK"%><%@ page import="mypack.Getall" %><%@ page import="mypack.DBcon" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Hello</title></head><body><% Getall pp=new Getall(); pp.loop();%>Hello!</body></html>
但部署好后(确认部署没有问题),tomcat报错
2012-5-18 18:16:29 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [jsp] in context with path [/test] threw exception [Unable to compile class for JSP:
An error occurred at line: 15 in the generated java file
Only a type can be imported. mypack.DBcon resolves to a package
Stacktrace:] with root cause
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 15 in the generated java file
Only a type can be imported. mypack.DBcon resolves to a package
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
哪位牛人帮忙看一下哪里出了问题,不胜感激!
[解决办法]
代码应该没问题,你的Tomcat安装路径是不是有空格?
[解决办法]
<%@ page import="mypack.Getall" %>
<%@ page import="mypack.DBcon" %>
应该是导入没有成功,页面要加相对路径
------解决方案--------------------
An error occurred at line: 15 in the generated java file
Only a type can be imported. mypack.DBcon resolves to a package
[解决办法]
An error occurred at line: 15 in the generated java file
Only a type can be imported. mypack.DBcon resolves to a package
从代码来看,你那个类有没有单独运行过。有没有什么问题。会不会是包的问题。可能是你有些包没引入