栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

简单、快速、有效的mybatis开发框架:Fast MyBatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单、快速、有效的mybatis开发框架:Fast MyBatis

开源地址:https://gitee.com/durcframework/fastmybatis
相关文档:https://durcframework.gitee.io/fastmybatis/#/

fastmybatis 是一个 mybatis 开发框架,其宗旨为:简单、快速、有效。零配置快速上手,无需编写 xml 文件即可完成 CRUD 操作。同时支持 mysql、sqlserver、oracle、postgresql、sqlite。

支持自定义 SQL,对于基本的增删改查不需要写 SQL,对于其它特殊 SQL(如统计 SQL )可写在 xml 中,支持与 Spring-Boot 集成,依赖 starter 即可,支持插件编写,支持 ActiveRecord 模式,提供通用 Service,轻量级,无侵入性,是官方 MyBatis 的一种扩展。

快速开始(springboot)

新建一个 Spring boot 项目
pom.xml 添加 fastmybatis-spring-boot-starter:


    net.oschina.durcframework
    fastmybatis-spring-boot-starter
    最新版本

增删改查例子:
假设数据库有张 t_user 表,添加对应的实体类 TUser.java和 Mapper 类:

TUserMapper.java:

@RestController
public class CrudController {

    @Autowired
    private UserService userService;
    
    @GetMapping("/user/page")
    public Result> page(UserParam param) {
        Query query = param.toQuery();
        PageInfo pageInfo = userService.page(query);
        return Result.ok(pageInfo);
    }

    
    @GetMapping("/user/save")
    public Result save(TUser user) {
        userService.saveIgnoreNull(user);
        // 返回添加后的主键值
        return Result.ok(user.getId());
    }

    
    @GetMapping("/user/update")
    public Result update(TUser user) {
        userService.updateIgnoreNull(user);
        return Result.ok();
    }

    
    @GetMapping("/user/delete")
    public Result delete(Integer id) {
        userService.deleteById(id);
        return Result.ok();
    }
}

UserService.java:

// 实现通用接口
@Service
public class UserService implements IService {

}

TUserMapper.java:

public interface TUserMapper extends CrudMapper {

}

service和mapper不用写一行代码就能实现各种数据库操作,非常方便。

Mapper方法列表
T getById(I id);


T getByQuery(@Param("query")Query query);


T getByColumn(@Param("column")String column,@Param("value")Object value);


long getCount(@Param("query")Query query);  


List listByColumn(@Param("column")String column,@Param("value")Object value);


List list(@Param("query")Query query);


List> listMap(@Param("columns")List columns, @Param("query")Query query);


int save(T entity);


int saveIgnoreNull(T entity);


int saveBatch(@Param("entitys")List entitys);


int saveMulti(@Param("entitys") List entitys);


int update(T entity);


int updateIgnoreNull(T entity);


int updateByQuery(@Param("entity") Object entity, @Param("query") Query query);


int delete(T entity);


int deleteById(I id);


int deleteByQuery(@Param("query")Query query);
Query查询对象
查询姓名为张三,并且年龄为22岁的用户:
Query query = new Query().eq("username","张三").eq("age",22);
List users = mapper.list(query);

查询年龄为10,20,30的用户:
Query query = new Query().in("age",Arrays.asList(10,20,30));
List users = mapper.list(query);

查询注册日期大于2017-11-11的用户:
Date regDate = ...
Query query = new Query().gt("reg_date",regDate);
List users = mapper.list(query);

查询性别为男的,年龄大于等于20岁的用户,按年龄降序:
Query query = new Query().eq("gender",1).ge("age",20).orderby("age",Sort.DESC);
List users = mapper.list(query);

分页查询:
Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据
List users = mapper.list(query);

查询总记录数:
Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据
long total = mapper.getCount(query); // 该条件下总记录数
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759954.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号