#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