Statement.executeQuery () не работает - PullRequest
0 голосов
/ 26 апреля 2020
statement = conRecieved.createStatement();
resultSet = statement.executeQuery("Select * from actor");

В этом случае я проверяю, возвращает ли он какой-либо результат, но не вводит его, если

if (resultSet.next()) {
   Toast.makeText (getActivity (), "ResultsetWorks", Toast.LENGTH_SHORT) .show ();
} else {
   Toast.makeText (getActivity (), "REsult set no results", Toast.LENGTH_SHORT) .show ();
}

Процесс подключения к базе данных выполняется в классе AsynTask, который дает мне соединение, созданный объект соединения, где вина? Я попытался привести полученное соединение, но оно не работает.

AsyncTaskConexion asyncTaskConexion = new AsyncTaskConexion(getActivity(), new GetConnection() {
    @Override
    public void getConnection(Connection conexion) {
        if(conexion!=null){
            Connection conRecieved = (Connection )conexion;

1 Ответ

0 голосов
/ 27 апреля 2020

Я исправил это, запустив запрос в отдельном потоке, не используя mainthread. Я не знаю, является ли это лучшим решением, но оно работает.

AsyncTaskConexion asyncTaskConexion = new AsyncTaskConexion(getActivity(), new GetConnection() {
        @Override
        public void getConnection(Connection conexion) {
            if(conexion!=null){
                Connection conexionRecibida = conexion;
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {                             
                            Statement statement = conexionRecibida.createStatement();
                            ResultSet resultSet = statement.executeQuery("Select * from actor");

с помощью метода runOnUiThread (... вы можете выполнять итерацию с элементами пользовательского интерфейса

                            getActivity().runOnUiThread(new Runnable() {
                                public void run() {
                                    try {
                                        if(resultSet.next()){
                                            Toast.makeText(getActivity(),"ResultsetWorks", Toast.LENGTH_SHORT).show();
                                        }else{
                                            Toast.makeText(getActivity(),"Empty ResultSet", Toast.LENGTH_SHORT).show();
                                        }
                                    } catch (SQLException e) {
                                        e.printStackTrace();
                                    }
                                }
                            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...