解决方案 »

  1.   

    java  how to program 第九版,第三十章,第二节的例子。
      

  2.   

    是不是因为权限的问题啊?明明有那个表啊。里面还可以查看到数据。在数据库的username上我沿用到APP,对不对?和系统管理员有关系吗?
    哪里要改啊?
      

  3.   

    没有人知道吗?我换成了mysql数据库,用户改成root,密码也是root,但错误依旧。那个表文件明明存在,尤其我敲到#{addressBean.addresses}时,是自动提示addresses的,它是ResultSet对象吧。
      

  4.   

    具體怎麼弄呢?表空間?
    好像也是的,连接池假如是java db的数据库,我把其中ConnectionAttributes属性设置为:create=true,数据库上显示了新创建出来的库,但用mysql却没有发现有新库。
      

  5.   

    我也觉得是路径问题。mysql数据库在哪里啊?很奇怪的是,我按书上说的把连接池里的ConnectionAttributes设置为;create=true后,没有创建出数据库,是我看不到吗?
    表空间应该又在哪里改呢?还有,java db数据库默认是APP用户,我怎么创建新用户,并授权呢?
      

  6.   

    大写字母对应的表前面默认加下划线,adress_bean试试
      

  7.   

    加了下划线还是不行啊。这个java how to program 9/e  java大学教程第九版上的例子没有人运行成功过吗?
      

  8.   

    我把源代码都贴出来,谁能帮我看一下吗?这是书上的例子,可怎么总是有如题的错误。// AddressBean.java
    // Bean for interacting with the AddressBook database
    package addressbook;import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import javax.annotation.Resource;
    import javax.faces.bean.ManagedBean;
    import javax.sql.DataSource;
    import javax.sql.rowset.CachedRowSet;@ManagedBean( name="addressBean" )
    public class AddressBean
    {
       // instance variables that represent one address
       private String firstName;
       private String lastName;
       private String street;
       private String city;
       private String state;
       private String zipcode;   // allow the server to inject the DataSource
       @Resource( name="jdbc/addressbook" )
       DataSource dataSource;
      
       // get the first name
       public String getFirstName()
       {
          return firstName;
       } // end method getFirstName   // set the first name
       public void setFirstName( String firstName )
       {
          this.firstName = firstName;
       } // end method setFirstName   // get the last name
       public String getLastName()
       {
          return lastName;
       } // end method getLastName   // set the last name
       public void setLastName( String lastName )
       {
          this.lastName = lastName;
       } // end method setLastName   // get the street
       public String getStreet()
       {
          return street;
       } // end method getStreet   // set the street
       public void setStreet( String street )
       {
          this.street = street;
       } // end method setStreet   // get the city
       public String getCity()
       {
          return city;
       } // end method getCity   // set the city
       public void setCity( String city )
       {
          this.city = city;
       } // end method setCity   // get the state
       public String getState()
       {
          return state;
       } // end method getState   // set the state
       public void setState( String state )
       {
          this.state = state;
       } // end method setState   // get the zipcode
       public String getZipcode()
       {
          return zipcode;
       } // end method getZipcode   // set the zipcode
       public void setZipcode( String zipcode )
       {
          this.zipcode = zipcode;
       } // end method setZipcode   // save a new address book entry
       public String save() throws SQLException
       {
          // check whether dataSource was injected by the server
          if ( dataSource == null )
             throw new SQLException( "Unable to obtain DataSource" );      // obtain a connection from the connection pool
          Connection connection = dataSource.getConnection();
          
          // check whether connection was successful
          if ( connection == null )
             throw new SQLException( "Unable to connect to DataSource" );      try
          {
             // create a PreparedStatement to insert a new address book entry
             PreparedStatement addEntry =
                connection.prepareStatement( "INSERT INTO ADDRESSES " +
                   "(FIRSTNAME,LASTNAME,STREET,CITY,STATE,ZIP)" +
                   "VALUES ( ?, ?, ?, ?, ?, ? )" );         // specify the PreparedStatement's arguments
             addEntry.setString( 1, getFirstName() );
             addEntry.setString( 2, getLastName() );
             addEntry.setString( 3, getStreet() );
             addEntry.setString( 4, getCity() );
             addEntry.setString( 5, getState() );
             addEntry.setString( 6, getZipcode() );         addEntry.executeUpdate(); // insert the entry
             return "index"; // go back to index.xhtml page
          } // end try
          finally
          {
             connection.close(); // return this connection to pool
          } // end finally
       } // end method save   // return a ResultSet of entries
       public ResultSet getAddresses() throws SQLException
       {
          // check whether dataSource was injected by the server
          if ( dataSource == null )
             throw new SQLException( "Unable to obtain DataSource" );      // obtain a connection from the connection pool
          Connection connection = dataSource.getConnection();      // check whether connection was successful
          if ( connection == null )
             throw new SQLException( "Unable to connect to DataSource" );      try
          {
             // create a PreparedStatement to insert a new address book entry
             PreparedStatement getAddresses = connection.prepareStatement(
                "SELECT FIRSTNAME, LASTNAME, STREET, CITY, STATE, ZIP " +
                "FROM ADDRESSES ORDER BY LASTNAME, FIRSTNAME" );         CachedRowSet rowSet = new com.sun.rowset.CachedRowSetImpl();
             rowSet.populate( getAddresses.executeQuery() );
             return rowSet; 
          } // end try
          finally
          {
             connection.close(); // return this connection to pool
          } // end finally
       } // end method getAddresses
    } // end class AddressBean
    这是名为AddressBean.java的文件。
      

  9.   

    你连接数据库用的是什么用户名?该用户名是该数据库的db_owner吗?
      

  10.   


    不是啊。按书上的,用户数APP,密码也是APP。我改用mysql后,用root和相应密码也不成功。