fastmybatis是一個mybatis開發框架,目的爲簡化mybatis的開發,讓開發更高效。java
fastmybatis與MyBatis generator對比mysql
<dependency> <groupId>net.oschina.durcframework</groupId> <artifactId>fastmybatis-spring-boot-starter</artifactId> <version>1.0.2</version> </dependency>
t_user
表,添加對應的實體類TUser.java
和MapperTUserMapper.java
application.propertis
中配置數據庫鏈接@Autowired TUserMapper mapper; // 根據主鍵查詢 @Test public void testGetById() { TUser user = mapper.getById(3); System.out.println(user); }
/** * 根據對象查詢,能夠傳主鍵值,也能夠傳整個對象 * * @param id * @return 返回實體對象,沒有返回null */ Entity getById(ID id); /** * 根據條件查找單條記錄 * @param query 查詢條件 * @return 返回實體對象,沒有返回null */ Entity getByQuery(@Param("query")Query query); /** * 根據字段查詢一條記錄 * @param column 數據庫字段名 * @param value 字段值 * @return 返回實體對象,沒有返回null */ Entity getByColumn(@Param("column")String column,@Param("value")Object value); /** * 查詢總記錄數 * * @param query 查詢條件 * @return 返回總記錄數 */ long getCount(@Param("query")Query query); /** * 根據字段查詢集合 * @param column 數據庫字段名 * @param value 字段值 * @return 返回實體對象集合,沒有返回空集合 */ List<Entity> listByColumn(@Param("column")String column,@Param("value")Object value); /** * 條件查詢 * * @param query 查詢條件 * @return 返回實體對象集合,沒有返回空集合 */ List<Entity> list(@Param("query")Query query); /** * 查詢指定字段結果 * @param columns 返回的字段 * @param query 查詢條件 * @return 返回結果集 */ List<Map<String, Object>> listMap(@Param("columns")List<String> columns, @Param("query")Query query); /** * 新增,新增全部字段 * * @param entity * @return 受影響行數 */ int save(Entity entity); /** * 新增(忽略null數據) * @param entity * @return 受影響行數 */ int saveIgnoreNull(Entity entity); /** * 批量添加,只支持mysql,sqlserver2008及以上數據庫.<br> * <strong>若要兼容其它版本數據庫,請使用saveMulti()方法</strong> * @param entitys * @return */ int saveBatch(@Param("entitys")List<Entity> entitys); /** * 批量添加,兼容更多的數據庫版本.<br> * 此方式採用union all的方式批量insert,若是是mysql或sqlserver2008及以上推薦saveBatch()方法. * @param entitys * @return */ int saveMulti(@Param("entitys")List<Entity> entitys); /** * 修改,修改全部字段 * * @param entity * @return 受影響行數 */ int update(Entity entity); /** * 根據主鍵更新不爲null的字段 * * @param entity * @return 受影響行數 */ int updateIgnoreNull(Entity entity); /** * 根據條件批量更新 * * @param entity 待更新的數據,能夠是實體類,也能夠是Map{@literal<String,Object>} * @param query 更新條件 * @return 受影響行數 */ int updateByQuery(@Param("entity") Object entity, @Param("query") Query query); /** * 刪除 * * @param entity * @return 受影響行數 */ int delete(Entity entity); /** * 根據id刪除 * * @param id 主鍵id * @return 受影響行數 */ int deleteById(ID id); /** * 根據條件刪除 * * @param query * @return 受影響行數 */ int deleteByQuery(@Param("query")Query query);
查詢姓名爲張三,而且年齡爲22歲的用戶: Query query = new Query().eq("username","張三").eq("age",22); List<User> users = mapper.list(query); 查詢年齡爲10,20,30的用戶: Query query = new Query().in("age",Arrays.asList(10,20,30)); List<User> users = mapper.list(query); 查詢註冊日期大於2017-11-11的用戶: Date regDate = ... Query query = new Query().gt("reg_date",regDate); List<User> users = mapper.list(query); 查詢性別爲男的,年齡大於等於20歲的用戶,按年齡降序: Query query = new Query().eq("gender",1).ge("age",20).orderby("age",Sort.DESC); List<User> users = mapper.list(query); 分頁查詢: Query query = new Query().eq("age",10).page(1,10); // 第一頁,每頁10條數據 List<User> users = mapper.list(query); 查詢總記錄數: Query query = new Query().eq("age",10).page(1,10); // 第一頁,每頁10條數據 long total = mapper.getCount(query); // 該條件下總記錄數
easydoc : 一個文檔管理項目,採用markdown方式寫做。git
Q羣328419269spring