(1) 數據源中的同構與異構
如果你需要討論一群鳥類或者一批飛機,那么這樣的數據是同構的,比如包含鳥類的數組 [Bird] 和包含飛機的數組 [Airplane]。
有時候你想探討的是這些空中家伙的共性 “飛翔”,因此你的數據源可能同時包含 Bird 和 Airplane,這樣的數據源叫做異構數據。
(2) SQL語句的同構與異構的區別
同構SQL語句: 指的是兩個SQL語句可編譯的部分是相同的,只是參數不一樣而已 異構SQL語句: 指的是兩個SQL語句整個的格式都是不同的。 在JDBC中,PreparedStatement執行同構SQL語句的效率是比較高的,因為PreparedStatement對象一旦綁定了SQL語句,就只能執行這一條SQL語句,例如:
public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; People people = new People(); try { conn = ConnectionFactory.getConnection(); String selectSQL = "SELECT id,name,salary FROM emp_t WHERE id = ?"; pstmt = conn.prepareStatement(selectSQL); pstmt.setLong(1,3); rs = pstmt.executeQuery(); if(rs.next()){ people.setId(rs.getLong("id")); people.setName(rs.getString("name")); people.setSalary(rs.getDouble("salary")); } System.out.println(people); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.close(conn, null, pstmt, rs); } }
這里只要傳入不同的參數就可以得到不同的查詢結果。
Statement則執行異構的SQL語句效率更高,這里就不做演示了。
