美好的一天,按數據庫列設置類字段
我想按數據庫列設置類字段。例如
等等...
然後我選擇例如Person類的一些領域;
"SELECT id FROM person"
然後,我需要設置ID,它是容易的,但我不知道我會集,我的意思是它可能是姓,名或什麼的。我如何設置這些字段。如果我設定這樣的話;
person.setInt(rslt.getString("SURNAME"));
如果我沒有寫人SELECT姓,該怎麼辦?它會給出錯誤。我怎樣才能使這些通用?
美好的一天,按數據庫列設置類字段
我想按數據庫列設置類字段。例如
等等...
然後我選擇例如Person類的一些領域;
"SELECT id FROM person"
然後,我需要設置ID,它是容易的,但我不知道我會集,我的意思是它可能是姓,名或什麼的。我如何設置這些字段。如果我設定這樣的話;
person.setInt(rslt.getString("SURNAME"));
如果我沒有寫人SELECT姓,該怎麼辦?它會給出錯誤。我怎樣才能使這些通用?
正如評論家建議,我會使用一個JPA框架,要做到這一點,但如果你喜歡使用原始JDBC,那麼你可以使用的方法ResultSet.getMetaData()
獲得列的數量和它們的名字:
ResultSetMetaData md=rslt.getMetaData();
List<String> columns= new ArrayList<>();
for (var i=0;i<md.getColumnCount();i++) {
columns.add(md.getColumnName(i+1)); //first one is in position 1, not 0
}
像Hibernate這樣的JPA規範的實現絕對是你正在尋找的。它是一個ORM(對象關係映射器),可以讓你將你的域映射到你的數據庫。它爲您提供了插入,更新,刪除以及根據您的域映射到數據庫的方式查詢數據庫的功能。這裏是一個基本的例子: http://www.dzone.com/tutorials/java/hibernate/hibernate-example/hibernate-annotations-1.html
你有沒有想過看待休眠?它確實完成了你使用註釋進行的操作。 –
這聽起來像JPA是你在找什麼:http://docs.oracle.com/javaee/7/tutorial/doc/persistence-intro.htm – Roberto
我會*強*推薦[休眠](http:// hibernate.org/)爲此。它提供了你的域類和通知它們的表之間的直接映射。 – christopher