在MyBatis中實現多表切換可以通過動態SQL來實現。以下是一種常見的實現方式:
<!-- 查詢表A的數據 -->
<select id="selectFromTableA" resultType="TableA">
SELECT * FROM table_a
</select>
<!-- 查詢表B的數據 -->
<select id="selectFromTableB" resultType="TableB">
SELECT * FROM table_b
</select>
// 創建SqlSession對象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 動態選擇要查詢的表
String tableName = "tableA"; // 或者從外部參數獲取表名
// 根據表名動態調用對應的SQL語句
List<Object> resultList;
if ("tableA".equals(tableName)) {
resultList = sqlSession.selectList("selectFromTableA");
} else if ("tableB".equals(tableName)) {
resultList = sqlSession.selectList("selectFromTableB");
} else {
// 處理其他表的查詢邏輯
}
// 關閉SqlSession對象
sqlSession.close();
通過以上方式,可以根據需要動態切換要查詢的表,在Java代碼中靈活地控制多表查詢操作。需要注意的是,在使用SqlSession調用SQL語句時,方法的第一個參數是SQL語句的id,第二個參數是傳遞給SQL語句的參數,可以根據需要進行傳遞。