user.java < /h2>
// User.java
public class User {
private int userId;
private String userName;
private String userEmail;
private String userPassword;
// getters and setters
}
< /code>
post.java
// Post.java
public class Post {
private int postId;
private String postCategory;
private String postTitle;
private String post;
private int userId; // foreign key reference to User
// getters and setters
}
< /code>
Я генерирую запрос SQL, используя метод CreateTable (), как это: < /p>
public String createTable(Class users) throws IllegalAccessException {
String message = "";
String className = printClassName(users); // assumes it returns the class name
StringBuilder sql = new StringBuilder("CREATE TABLE IF NOT EXISTS " + className);
sql.append("(");
Field[] fields = users.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
if (fields.getType() == int.class && fields.getName().equals("userId")) {
sql.append(fields.getName()).append(" INT AUTO_INCREMENT NOT NULL");
} else if (fields.getType() == int.class) {
sql.append(fields.getName()).append(" INT NOT NULL");
} else if (fields.getType() == String.class) {
sql.append(fields.getName()).append(" VARCHAR(255) NOT NULL");
}
if (i < fields.length - 1) {
sql.append(", ");
}
if (i == fields.length - 1) {
sql.append("PRIMARY KEY (").append(fields[0].getName()).append(")");
}
}
sql.append(");");
System.out.println("Executing SQL Query: " + sql.toString());
try {
dataBaseConnection.pstmt = dataBaseConnection.conn.prepareStatement(sql.toString());
int i = dataBaseConnection.pstmt.executeUpdate();
message = (i > 0) ? "Table created with name: " + className + " successfully." : "Something went wrong.";
} catch (Exception e) {
e.printStackTrace();
}
return message;
}
< /code>
Этот подход отлично работает для простых таблиц, но теперь я хочу обнаружить и обрабатывать отношения иностранных ключей без использования аннотаций. Я знаю, что мог бы использовать аннотации (например, @foreignkey), но я явно избегаю того, что из-за обработки накладных расходов и предпочтения для решений на основе отражения. Добавить ограничения иностранного ключа в сгенерированную SQL?
Было бы полезным>
Подробнее здесь: https://stackoverflow.com/questions/786 ... ting-a-mys
Как обнаружить, содержит ли класс Java поле иностранного ключа при генерации запроса на таблицу MySQL? [закрыто] ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
MySQL Добавление ограничения иностранного ключа в таблицу с использованием выражения JSON
Anonymous » » в форуме MySql - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблема возникает при добавлении нового поля иностранного ключа в модель
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проблема возникает при добавлении нового поля иностранного ключа в модель
Anonymous » » в форуме Python - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Activiti/mybatis - нарушение ограничения иностранного ключа при удалении процесса выполнения
Anonymous » » в форуме JAVA - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Нарушение ограничений иностранного ключа при удалении выполнения процесса
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-