«Операции запрещены после закрытия соединения» с использованием Dart и Java - PullRequest
0 голосов
/ 30 марта 2020

Я работаю с Spring Boot и Dart. Когда я нажал на URL (используя POSTMEN / Browser), чтобы вставить некоторые данные в MySql, я получил ответ правильно. Но когда я отправляю 3 запроса последовательно из Flutter Front-end, используя язык Dart, он в большинстве случаев возвращает результат 2 запроса GET и через ошибку для 3-го запроса, и большую часть времени он работает для всех запросов.

Ниже приведен connection service, который я использую в бэкэнде для хранения данных.

ConnectionService. java

@Service
public class ConnectionService {

    private static final Logger log = LoggerFactory.getLogger(ConnectionService.class);
    Connection connection = null;

    @Value("${spring.datasource.url}")
    String datasourceUrl = "jdbc:mysql://localhost/databaseName?autoReconnect=true&useSSL=false";

    public Connection createConnection() throws SQLException {


        connection = DriverManager.getConnection(datasourceUrl, "root", "root");
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        return connection;
    }

    public void closeConnection() {
        try {
            connection.close();
        } catch (Exception e) {
            log.error(e.toString());
        }
    }
}

Я создаю объект класса обслуживания Connection и вызовите createConnection() для создания соединения и closeConnection() для его закрытия.

Controller. java


@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    ConnectionService connectionService;


    @GetMapping(path = "/test")
    public void testFunction(@RequestParam(name = "abc") String abc) throws SQLException 
    {
        Connection connection = connectionService.createConnection();
        if (abc.isExist(param1,param2,connection)) 
        {
          //some code
            connectionService.closeConnection();

        } else
        {
            //some operation
              connectionService.closeConnection();
         }

    }

Руководство мне, чтобы решить эту проблему. Спасибо

1 Ответ

0 голосов
/ 30 марта 2020

Проблема в том, что вместо закрытия экземпляра connection, который я создал локально, я закрываю основной экземпляр connectionService. Это проблема.

Сейчас connectionService.closeConnection(); Это должно быть connection.closeConnection();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...