本帖最后由 sadls 于 2010-12-09 00:16:35 编辑

解决方案 »

  1.   


    package bean2;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;import bean2.book;public class dbControl {
    /*连接数据库*/
    public Connection linkDB()
    {
    Connection conn=null;
    try 
    {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    conn=DriverManager.getConnection("jdbc:odbc:book");
    }
    catch (Exception e) 
    {
    e.printStackTrace();

    return null;
    }

    /*查询多条数据*/
    public ArrayList list()
    {
    Connection conn=linkDB();
    String sql="select * from p";
    ArrayList list=new ArrayList();
    Statement stmt = null;
    try {
    stmt=(Statement)conn.createStatement();
    } catch (SQLException e) {

    e.printStackTrace();
    }
    ResultSet rs = null;
    try {
    rs = stmt.executeQuery(sql);
    } catch (SQLException e) {

    e.printStackTrace();
    }
    try {
    while(rs.next())
    {
    book b=new book();
    b.setId(rs.getInt("id"));
    b.setTitle1(rs.getString("title1"));
    b.setTitle2(rs.getString("title2"));
    b.setImage(rs.getString("image"));
    b.setContent(rs.getString("content"));
    b.setPrice(rs.getInt("price"));
    list.add(b);
    }
    } catch (SQLException e) {

    e.printStackTrace();
    }
    return list;
    }

    /*查找一条记录*/
    public book find(int id){
    Connection conn=linkDB();
    String sql="select * from p where id="+id;
    Statement stmt; book b=new book();
    try {
    stmt = (Statement)conn.createStatement();
    ResultSet rs=stmt.executeQuery(sql);
    rs.next();

    b.setTitle1(rs.getString("title1"));
    b.setTitle2(rs.getString("title2"));
    b.setImage(rs.getString("image"));
    b.setContent(rs.getString("content"));
    b.setPrice(rs.getInt("price")); } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    closeDB(conn);
    }
    return b;
    }

    /*关闭数据库*/
    public void closeDB(Connection conn)
    {
    try 
    {
    conn.close();

    catch (SQLException e) 
    {
    e.printStackTrace();
    }
    }

    }
    package bean2;public class book {
    String title1;
    String title2;
    String image;
    String content;
    int id;
    int price;
    public String getTitle1() {
    return title1;
    }
    public void setTitle1(String title1) {
    this.title1 = title1;
    }
    public String getTitle2() {
    return title2;
    }
    public void setTitle2(String title2) {
    this.title2 = title2;
    }
    public String getImage() {
    return image;
    }
    public void setImage(String image) {
    this.image = image;
    }
    public String getContent() {
    return content;
    }
    public void setContent(String content) {
    this.content = content;
    }
    public int getPrice() {
    return price;
    }
    public void setPrice(int price) {
    this.price = price;
    }
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    }
      

  2.   

    错误日志如下:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: java.lang.NullPointerException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
    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)
    root cause java.lang.NullPointerException
    bean2.dbControl.closeDB(dbControl.java:99)
    bean2.dbControl.find(dbControl.java:89)
    org.apache.jsp.index1_jsp._jspService(index1_jsp.java:134)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    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.14 logs.
      

  3.   

    这里面可能是你的数据库连接取得失败,这句打断点:
    conn=DriverManager.getConnection("jdbc:odbc:book");
    conn是不是为空?
      

  4.   

    5555555
    恕我愚笨,刚会使用MyEclipse不久,断点之类的还不怎么会使用。=.=||
      

  5.   

    哈 解决了
    连库方法里应该是return conn,我给写成return null造成了错误。