package readboardlist;

import java.io.*;
import java.sql.*;
import java.util.Date;

import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class ReadBoardListBean implements SessionBean {

    private SessionContext ctx;
    int totalListNum;
    int totalPage;
    int pageListNum;

    public ReadBoardListBean( ) {
    }
    public void loadDriver ( ) throws ClassNotFoundException, Exception {
    Class.forName ( "oracle.jdbc.driver.OracleDriver" ) .newInstance ( ) ;
    }
    public BoardData[] readList ( ) throws SQLException {
    String url = "jdbc:oracle:thin:@localhost:1521:etri" ;
    Connection con ;
    Statement stmt ;
    String query = "select BNUM, BDATE, BNAME, BEMAIL, BTITLE from board order by bnum " ;
    String CountQuery = "select count ( * ) as rc from board " ;
    con = DriverManager.getConnection ( url, "scott", "tiger" ) ;
    stmt = con.createStatement ( ) ;
    ResultSet rs = stmt.executeQuery ( CountQuery ) ;
    rs.next ( ) ;
    int RecordCount = rs.getInt ( "rc" ) ;
    totalListNum = RecordCount ;
    if ( totalListNum == 0 ) return null;
    totalPage = totalListNum/HTMLLib.LINENUM+1 ;
    if ( totalListNum!= 0 && pageListNum == 0 ) pageListNum=HTMLLib.LINENUM;
    BoardData[] bd = new BoardData[totalListNum] ;
    int i = 0 ;
    rs = stmt.executeQuery ( query ) ;
    while ( rs.next ( ) ) {
    bd[i] = new BoardData ( rs.getInt ( "BNUM" ) , rs.getDate ( "BDATE" ) ,rs.getString ( "BTITLE" ) , rs.getString ( "BNAME" ) , rs.getString ( "BEMAIL" ) , null, null ) ;
    i++ ;
    }
    stmt.close ( ) ;
    con.close ( ) ;
    return bd ;
    }
    public int getTotalListNum ( ) {
    return totalListNum ;
    }
    public int getTotalPage ( ) {
    return totalPage ;
    }
    public int getPageListNum ( ) {
    return pageListNum ;
    }

    public void log(String s) {
        System.out.println(s);
    }

    public void ejbActivate() {
        log("ejbActivate called");
    }

    public void ejbRemove() {
        log("ejbRemove called");
    }

    public void ejbPassivate() {
        log("ejbPassivate called");
    }

    public void setSessionContext(SessionContext ctx) {
        log("setSessionContext called");
        this.ctx = ctx;
    }

    public void ejbCreate() throws CreateException{
        log("ejbCreate called");
        try {
            InitialContext ic = new InitialContext();
        } catch (NamingException ne) {
            throw new CreateException("Failed to find environment value "+ne);
        }
    }

}
