Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение данных из БД JDBC-ODBC 
:(
    Опции темы
SevenReg
Дата 23.4.2010, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 16.4.2008

Репутация: нет
Всего: нет



Помогите пожалуйста разобраться я пишу такой код. Мне необходимо получить значения из бд и передать эти значения в класс X2. Подскажите пожалуйста как это сделать и можно ли так писать?
Код

 */

package ken;

import java.io.Serializable;
import java.sql.SQLException;
import java.util.Date;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;

import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.links.CategoryItemLinkGenerator;
import de.laures.cewolf.tooltips.CategoryToolTipGenerator;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import org.jfree.data.function.Function2D;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.data.xy.XYDataset;
/**
 *
 * @author Dan
 */


public class KolomiecElenaDiagram implements DatasetProducer,Serializable {

  Connection con = null;
  PreparedStatement ps = null;
  ResultSet rs = null;
  Statement stmt = null;
  public String per1;
  public String per2;
  public String per3;
  public String per4;
  public String per5;

  Integer id = 5;    
  public void loadJBDCDriver() throws SQLException{
   try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con =DriverManager.getConnection("jdbc:odbc:Znach_Ac");
      
      stmt=con.createStatement();
      rs = stmt.executeQuery("SELECT * FROM Znach");
     while(rs.next()){
       per1 = rs.getString(1);
       per2 = rs.getString(2);
       per3 = rs.getString(3);
       per4 = rs.getString(4);
       per5 = rs.getString(5);
    


  
  } catch (ClassNotFoundException e) {
     throw new SQLException("JDBC Driver not found.", e);
  } finally {
    try {
      if(stmt != null){
        stmt.close();
        stmt = null;
      }
      if(ps != null) {
        ps.close();
        ps = null;
      }
      if(con != null) {
        con.close();
        con = null;
      }
    } catch (SQLException e) {}
  }
  }

       private static final Log log=LogFactory.getLog(KolomiecElenaDiagram.class);

  
   public Object produceDataset(Map params) throws DatasetProduceException{
    log.debug("produciendo datos.");
       XYDataset result = DatasetUtilities.sampleFunction2D(new X2(),
                -6.0, 4.0, 20, "f(x)");
        return result;
 }

public boolean hasExpired(Map params,Date since){
  log.debug(getClass().getName()+"hasExpired()");
  return(System.currentTimeMillis()-since.getTime())>5000;
 }
   public String getProducerId() {
    return "xyData";
    }

    

         public class X2 implements Function2D {

        /* (non-Javadoc)
         * @see org.jfree.data.function.Function2D#getValue(double)
         */
        public double getValue(double x) {
               return a*x*x+b*x+3;
        }
      }

/*    public boolean hasExpired(Map arg0, Date arg1) {
        // assuming data does not change
        // - never expires
        return false;
    }*/

}





PM MAIL   Вверх
ivanovpv
Дата 27.4.2010, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 1
Всего: 28



Цитата(SevenReg @  23.4.2010,  12:42 Найти цитируемый пост)
Помогите пожалуйста разобраться я пишу такой код. Мне необходимо получить значения из бд и передать эти значения в класс X2. Подскажите пожалуйста как это сделать и можно ли так писать?


Так, конечно, можно, но не надо smile
1) Получение ч/з JDBC-ODBC написан верно, при условии, что:
    а) у вас уже есть ODBC DataSource с именем Znach_Ac
    б) в таблице zhach есть по крайней мере 5 строковых полей
    в) и вы используете только последнюю запись из этой таблицы (цикл while(rs.next()) - ложит все в одни и те же переменные)
2) А дальше начинается темный лес. Зачем переменные perXX объявлены как public? Если так то проще не писать под Java и взять честный VB и все 

По хорошему я бы объявил переменные perXX как локальные стековые переменные и заслал бы их в конструктор класса X2 там бы их положил в приватные члены класса и дальше вызвал некий метод класса Х2, который должен то ли рисовать то ли считать что-то - это из ваших сорсов непонятно.

Это сообщение отредактировал(а) ivanovpv - 27.4.2010, 09:05


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.