0
我有兩個表,Proteins
和Species
。 Protein
具有Species.Id
作爲外鍵約束。當我插入數據時,我知道蛋白質所屬物種的名稱,但不知道Id
。所以我做了以下工作:從另一個表中插入一個值部分的記錄
PreparedStatement query = connection.prepareStatement(
"SELECT Id FROM Species WHERE ShortName = ?");
query.setString(1, protein.getSpecies().getShortName());
ResultSet result = query.executeQuery();
if (result.next()) {
PreparedStatement statement = connection.prepareStatement(
"INSERT INTO Proteins(SpeciesId, UniProtKBAccessionNumber) VALUES (?, ?)");
statement.setString(1, result.getString(1));
statement.setString(2, protein.getUniProtKBAccessionNumber().toString());
statement.execute();
}
else
throw new IllegalArgumentException("The species of this protein is not recognized!");
基本上,我得到相應於名稱的Id,然後插入蛋白質。這在很多方面都很笨拙。有沒有更好的方法來實現這個目標?我正在研究SQLite數據庫。