работа с MySql Java

357
08 февраля 2017, 23:47

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

        package com.mysql;
       import com.classes.StudentSubject;
       import com.interfaces.DaoStudentSubject;
       import java.sql.Connection;
       import java.sql.SQLException;
       import java.util.List;
       public class MySqlDaoDaoStudentSubject implements DaoStudentSubject {
  //первый вариант запроса
  //    public static final String SELECT = " SELECT s.id, s.first_name, 
        s.second_name, c.subject, c.mark " +
  //            " FROM " +
  //            " student s INNER JOIN " +
  //            " subject c ";
  //второй вариант запроса
    public static final String SELECT = " SELECT * FROM student_db.student";
   private PreparedStatement pstm=null;
   private PreparedStatement AllPreparedStatement = null;
   private final Connection connection;
   private ResultSet rs = null;
    private void init() throws SQLException {
    if (AllPreparedStatement == null) {
        AllPreparedStatement = connection.prepareStatement(SELECT);
    }
    }
    public MySqlDaoDaoStudentSubject(Connection connection) {
    this.connection = connection;
   }
   //Прочитать всех студентов
   @Override
   public void getAllStudent() throws SQLException {
    init();
    try (ResultSet rs = AllPreparedStatement.executeQuery(SELECT)) {
        while (rs.next()) {
            System.out.println(rs.getInt("id") + "
    " +   rs.getString("first_name") + " " +
                    "" + rs.getString("second_name"));
        }
     }catch (Exception e) {
        e.printStackTrace();
     }
    } 

с первым запросом в первом методе у меня выдает 20 раз одну и туже таблицу, со вторым запросом, просто одного студента. мне нужен какой-то универсальный запрос, а также у меня еще есть запросы на удаление, вставку, обновления...и мне надо чтобы PreparedStatement был один на все запросы - это вообще возможно ? я знаю как сделать такой запрос, чтобы у меня все работало как надо, привел просто примеры двух разных запросов. Но если у меня много методов и должен быть один PreparedStatement как мне это сделать все ? буду рад любой помощи. Спасибо.

READ ALSO
Объявление интерфейса в интерфейсе

Объявление интерфейса в интерфейсе

Тело интерфейса может объявлять члены интерфейса, те

315
Целевой тип лямбда-выражения

Целевой тип лямбда-выражения

Что называется целевым типом лямбда-выражения?

1147
Запуск программы после checkout в SVN

Запуск программы после checkout в SVN

Как запустить проект (программу) в Eclipse? Есть проект джава, я его через SVN сохранил на компьютер для последующего дебагаНо у меня не выходит...

346
Не работает отладка при сборке проекта JavaFX при помощи Gradle

Не работает отладка при сборке проекта JavaFX при помощи Gradle

Использую готовый скрипт для сборки, всё запускается и вроде бы всё хорошоНо почему не работает отладка ? я предполагаю нужно добавить еще...

342