2016-11-23 29 views
-1

這是我的功能,獲取表播放器的所有行。是否有可能在Spring JDBC中使用相同的函數從不同的表中檢索數據?

public List<Player> getAllPlayer() { 
    String sql = "SELECT * FROM PLAYER"; 
    List<Player> lstPlayers = getJdbcTemplate().query(
     sql, new BeanPropertyRowMapper(Player.class) 
    ); 
    return lstPlayers;  
} 

我想從另一個表'學生'使用這個相同的功能獲取數據。 是否可以通過更改上面的代碼 (如下所示)使用相同的函數從兩個表中獲取數據?

public List<Object> getData(String TableName) { 
    String sql = "SELECT * FROM " + TableName; 
    List<Object> lstPlayers = getJdbcTemplate().query(
     sql, new BeanPropertyRowMapper(Object.class) 
    ); 
    return lstPlayers; 
} 
+0

當您嘗試過時發生了什麼? – EJP

+0

您是否嘗試過自己執行此操作?總是建議先嚐試一下代碼,然後在出現任何錯誤時詢問疑惑 –

回答

0

你可以做類似下面

List<Player> players = getData(Player.class); 
List<Student> students = getData(Student.class); 

public List<T> getData(Class<T> clazz) { 

    String sql = "SELECT * FROM " + clazz.getSimpleName(); 
    List<T> lstPlayers = getJdbcTemplate().query(
      sql, 
      new BeanPropertyRowMapper(clazz)); 

    return lstPlayers; 
} 

然而在現實生活中沒有太多的優勢。由於性能和其他原因,想要一次加載數據庫表的所有內容並不常見,所以此方法不會像您想象的那樣有用。

+0

感謝它爲我工作。 –

相關問題