Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Помогите разобраться в коде...


Автор: Maksys 27.4.2006, 22:21
Код

package abitur;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

/**
 * 
 * A sample Java bean that stores portlet instance data in portlet session.
 *  
 */
public class ABITURPortletSessionBean {

    //**********************************************************
    //* Last text for the text form
    //**********************************************************

    private String formText = "";

    public String[] rqData;

    /**
     * Set last text for the text form.
     * 
     * @param formText
     *            last text for the text form.
     */
    public void setFormText(String formText) {
        this.formText = formText;
    }

    /**
     * Get last text for the text form.
     * 
     * @return last text for the text form
     */
    public String getFormText() {
        return this.formText;
    }

    public void getParameters() {
        try {
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            Connection cn = DriverManager.getConnection(
                    "jdbc:microsoft:sqlserver://maksys:1433", "sa", "sqladmin");
            Statement st = cn.createStatement();
            String query = "USE Abiturient; SELECT * FROM Students";
            ResultSet rs = st.executeQuery(query);
            int maxCols = rs.getMetaData().getColumnCount();
            while (rs.next()) {
                for (int i = 0; i <= maxCols; i++) {
                    rqData[i] = rs.getString(i);
                }
            }
            st.close();
            cn.close();
        } catch (Exception e) {
            System.out.print(e.toString());
        }
    }

    public void main(String[] args) {
        getParameters();
    }
}


Вот я хочу внешним JSP прочитать стрковой массив rqData но ни чего не выходит... я уже устал.. и не варит шифер... и не знаю тонкостей Java, плз хелп...
ЗЫ я просто еще начинающий Папка в java 

Автор: powerOn 27.4.2006, 22:59
Что конкретно не получается? Какие исключения вылетают и  вылетают ли? Проблема то в чем?   

Автор: Maksys 28.4.2006, 07:10
Ексепшен есть...
Код

java.lang.NoSuchMethodError: main
Exception in thread "main" 

Но если я делаю функцию main статической и все переменки делаю статической, то rqData возвращает null. Ну ни как не могу посмотреть что у меня в массиве, rqData[i] ваще не работает...  
Код

  public String[] getParameters() {
        try {
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            Connection cn = DriverManager.getConnection(
                    "jdbc:microsoft:sqlserver://maksys:1433", "sa", "sqladmin");
            Statement st = cn.createStatement();
            String query = "USE Abiturient; SELECT * FROM Students";
            ResultSet rs = st.executeQuery(query);
            int maxCols = rs.getMetaData().getColumnCount();
            while (rs.next()) {
                for (int i = 0; i <= maxCols; i++) {
                    rqData[i] = rs.getString(i);
                }
            }
            st.close();
            cn.close();
        } catch (Exception e) {
            System.out.print(e.toString());
        }  
         return rqData;
    }


Ну возвращает null 

Автор: batigoal 28.4.2006, 09:17
Цитата(Maksys @  27.4.2006,  23:21 Найти цитируемый пост)
Вот я хочу внешним JSP прочитать стрковой массив rqData но ни чего не выходит

Приведи текст JSP-страницы. Видимо, ты просто неправильно используешь свой класс ABITURPortletSessionBean. 

Автор: Ortega 29.4.2006, 13:40
Естественно, у тебя будет вылетать этот эксепшн, ибо main ДОЛЖЕН быть static. Сделай так:

Код

public class ABITURPortletSessionBean {

...

    public static void main(String[] args) {
        ABITURPortletSessionBean instance = new ABITURPortletSessionBean();
        instance.getParameters();
    }
}
 

Автор: batigoal 29.4.2006, 22:07
Цитата(Ortega @  29.4.2006,  14:40 Найти цитируемый пост)
Естественно, у тебя будет вылетать этот эксепшн, ибо main ДОЛЖЕН быть static.

Да тут, похоже, main вообще не нужен. 

Автор: Maksys 30.4.2006, 08:58
Нашел ошибку, я массив объявил но не инициализировал. когда я создал переменку
Код

String[] rqData=new String [100];

Все заработало, но пришлось книжку купить где про массивы пишется, и возникает следующий вопрос.
А что если длина массива мне не известна?
Вот у нас AS кодеров просто пишешь rqData.push(var); и все а в java как? 

Автор: ALKS 30.4.2006, 10:07
книжку купил, говориш? по Java? - вот полностью прочитай. вопрос сам отпадет да и узанеш многое по ходу. 

Автор: Maksys 30.4.2006, 10:10
читаю... smile в захлеб... smile 

Автор: Maksys 30.4.2006, 10:29
только чет ну ни как не могу найти как создать массив не понятной длиной. 

Автор: LSD 30.4.2006, 12:15
Код
public String[] createArray(int length)
{
  return new String[length];
}
 

Автор: batigoal 30.4.2006, 16:26
Maksys, почитай главу про коллекции smile 

Автор: Maksys 30.4.2006, 16:53
А пасибо ребята, я уже нашел, дочитал книжечку до ArrayList. Ну могу сказать шо Java попахивает извратом, чтоб так...с массивом. в пакеты util запихать...  smile 
Все вопрос решен smile 

Автор: LSD 1.5.2006, 12:01
Цитата(Maksys @  30.4.2006,  17:53 Найти цитируемый пост)
Ну могу сказать шо Java попахивает извратом, чтоб так...с массивом. в пакеты util запихать...

Это не массив, это коллекция, это две совершенно разные вещи. 

Автор: batigoal 1.5.2006, 17:04
Цитата(Maksys @  30.4.2006,  17:53 Найти цитируемый пост)
Ну могу сказать шо Java попахивает извратом, чтоб так...с массивом. в пакеты util запихать... 

А я считаю, что это один плюсов языка - обширный выбор коллекций. Этому даже отдельная дисциплина у нас в институте посвящена была.  

Автор: Maksys 1.5.2006, 19:01
Я еще новайс.. и очень надеюсь в этом разобраться... smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)