Метод getBackMysql () не определен для типа JSONObject.

0

Теперь я пишу java-программу для извлечения данных в базе данных Mysql. Конечно, чтобы прочитать все сообщения, касающиеся этой проблемы (все еще не могу понять), и я включил org.json.jar в свою справочную библиотеку.

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

import org.json.*;


public class getBackMysql
{
    static final String JDBC_Driver = ...;
    static final String DB_URL = ...;

    static final String USER = ...;
    static final String PASS = ...;

    public static JSONObject jsonobject;

    public static JSONObject getBackMysql()
    {
        Connection conn = null;
        Statement stmt = null;

        try
        {
            Class.forName("com.mysql.jdbc.Driver");

            System.out.println("Connecting the Database...");
            conn = DriverManager.getConnection( DB_URL, USER, PASS );

            System.out.println("Instantiating Statement...");
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT t, obtid FROM t_localobtmind where obtid = 'G3742' order by ddatetime desc limit 1;";
            ResultSet rs = stmt.executeQuery(sql);

            while(rs.next())
            {
                String obtid = rs.getString("obtid");
                int temp = rs.getInt("t");

                String temperature = (String)("Temperature: " + temp / 10 + "℃");

                jsonobject.put("obtid", obtid);
                jsonobject.put("temperature", temperature);
            }

            rs.close();
            stmt.close();
            conn.close();

        }

        catch(SQLException se)
        {
            se.printStackTrace();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if (stmt != null)
                {
                    stmt.close();
                }
            }
            catch(SQLException se2)
            {

            }
            try
            {
                if (conn != null)
                {
                    conn.close();
                }
            }
            catch(SQLException se)
            {
                se.printStackTrace();
            }
        }

    System.out.println("----Program ends----");
    return jsonobject;
    }

    public static void main( String[] args ) 
    {

        JSONObject json = json.getBackMysql();
        int tmp = json.getInt("temperature");
        String obtid = json.getString("obtid");


    }
}

Eclipse показывает мне следующую ошибку: Метод getBackMysql() не определен для типа JSONObject. Я все еще новичок в JSONObject и понятия не имею, что происходит. Я несколько раз меняю имя класса, но он не работает. Кроме того, это небольшой тест перед крупным проектом.

Кто-нибудь имеет представление о том, что происходит? Заранее спасибо.

  • 0
    Пожалуйста, напишите свой полный код вместе с именем файла для каждого из приведенных выше фрагментов кода
  • 0
    Modified. Только один файл "getBackMysql.java".
Теги:

1 ответ

1
Лучший ответ

Класс JSONObject не имеет getBackMysql(), поэтому мы не можем получить к нему доступ из объекта класса JSONObject.

Поскольку getBackMysql() находится в том же классе, где присутствует основной метод. Вы можете заменить линию

JSONObject json=json.getBackMysql();

С

JSONObject json=getBackMysql();
  • 0
    Как только я делаю такие замены, программа генерирует необработанное исключение типа JSONException и просит меня окружить код try & catch.
  • 0
    добавьте класс JSONException в блоке catch таким же образом, как вы это сделали для классов SQLException и Exception

Ещё вопросы

Сообщество Overcoder
Наверх
Меню