Есть ли способ просто запросить существующую базу данных без создания сущностей при загрузке

#java #oracle #spring-boot

Вопрос:

Я не разработчик java, я занимался разработкой на других языках и просто задаюсь вопросом, могу ли я просто запросить существующую базу данных из приложения java без использования сущности, которую необходимо увлажнить… Я проверил различные реализации, и JPA или jdbc данных в spring boot все должны быть сопоставлены с классом сущностей en. У меня есть база данных, которую я хочу запросить и использовать полученные оттуда данные для создания некоторых файлов… но я не хочу сопоставлять все эти таблицы с классом сущностей в java…

Я мог бы сделать это с Pyhto, Php, C и т. Д…

Но Java всегда кажется очень многословной с этой точки зрения…

Комментарии:

1. Не используйте JPA, Hibernate или какой-либо ORM. Просто пойдите с обычным старым JDBC 1997 года. Прост в использовании, когда у вас есть не более дюжины столов. Если у вас есть типичная бизнес-база данных (более 50 таблиц) Однако я бы рекомендовал настоящий ORM.

Ответ №1:

Вы можете запросить базу данных с помощью синтаксиса SQL и JDBC. Хотя остерегайтесь SQL-инъекций 🙂

Смотрите приведенный ниже пример, в котором показано, как:

 try
    {
      // create our mysql database connection
      String myDriver = "org.gjt.mm.mysql.Driver";
      String myUrl = "jdbc:mysql://localhost/test";
      Class.forName(myDriver);
      Connection conn = DriverManager.getConnection(myUrl, "root", "");
      
      String query = "SELECT * FROM users";

      // create the java statement
      Statement st = conn.createStatement();
      
      // execute the query, and get a java resultset
      ResultSet rs = st.executeQuery(query);
      
      // iterate through the java resultset
      while (rs.next())
      {
        int id = rs.getInt("id");
        String firstName = rs.getString("first_name");
        String lastName = rs.getString("last_name");
        Date dateCreated = rs.getDate("date_created");
        boolean isAdmin = rs.getBoolean("is_admin");
        int numPoints = rs.getInt("num_points");
        
        // print the results
        System.out.format("%s, %s, %s, %s, %s, %sn", id, firstName, lastName, dateCreated, isAdmin, numPoints);
      }
      st.close();
    }
    catch (Exception e)
    {
      System.err.println(e.getMessage());
    }
  }
}
 

Ссылка: https://alvinalexander.com/java/java-mysql-select-query-example/

Ссылка на соединитель Mysql: https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-usagenotes-connect-drivermanager.html

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-overview.html

Комментарии:

1. Драйвер и URL-адрес должны быть изменены на базу данных Oracle, но да, это то решение, которое хочет OP.

Ответ №2:

Это зависит от смысла вашего вопроса. Java-это строго типизированный язык. Конечно, вы можете запросить любую базу данных с помощью jdbc и spring boot. Однако, если вы хотите вернуть результат своего запроса, вам необходимо создать для него pojo.

Комментарии:

1. Это также правильный подход с 90-х годов. В те давние времена люди избегали POJOs и вместо этого использовали хэш-карты. Теперь, когда я думаю об этом, документы JSON похожи на хэш-карты; никакой грамматики, никакой проверки вообще, просто простые данные. 1