MyBatis 是一款優秀的 Java ORM 框架。傳統開發中,業務邏輯與 SQL 查詢混雜,導致開發效率低下。ORM 框架將資料表映射為 Java 對象,操作資料庫時只需操作對象屬性,大幅簡化開發流程。
雖然 MyBatis 簡化了持久層開發,但手寫 XML 配置繁瑣且易出錯。MyBatis Generator 應運而生,只需簡單配置即可批量生成實體類、Mapper 接口及 XML 文件,速度快且不易出錯,讓開發者專注於業務邏輯。
Generator 會生成四類文件:
配置好生成路徑與包名後,即可自動生成完整目錄結構。
@Autowired private BlackListIPMapper blackListipMapper;
public BlackListIP get(String ip) {
BlackListIPExample example = new BlackListIPExample();
example.createCriteria().andIpEqualTo(ip);
List<BlackListIP> list = blackListipMapper.selectByExample(example);
return (list != null && !list.isEmpty()) ? list.get(0) : null;
}
// 排序
example.setOrderByClause("CREATE_TIME desc");
// 分頁
example.setLimitClauseStart(pageInfo.getPageStart());
example.setLimitClauseCount(pageInfo.getPageCount());
List<Account> list = accountMapper.selectByExample(example);
int total = accountMapper.countByExample(example);
Generator 不支援 Join 查詢,需手動添加。例如實現 a=x and (b=xx or b=xxx):
AccountExample example = new AccountExample();
Criteria criteria = example.createCriteria().andTypeEqualTo("4");
criteria.addCriterion(String.format(" (ID=%d or ID=%d) ", 34, 35));
需修改 Generator 源碼將 Example 類的 Criteria 方法改為 public 可见性。
MyBatis Generator 大幅提升開發效率,配合分頁、批量操作等插件,能滿足大多數業務場景。建議將常用配置整合至項目模板中,進一步提升團隊協作效率。