MiniDao 学习系列 2- - - - 特征及主要用法

本贴最后更新于 2151 天前,其中的信息可能已经斗转星移

MiniDao 学习系列 2- - - - 特征及主要用法

基于 MiniDao v1.6.4 版本。

简介

MiniDao 是一款超轻量的 JAVA 持久层框架,基于 SpringJdbc + freemarker 实现,具备 Mybatis 一样的 SQL 分离灵活性和标签逻辑。最大优点:可无缝集成 Hibernate 项目,支持事务统一管理,有效解决 Hibernate 项目,实现灵活的 SQL 分离问题。

特征

  • O/R mapping 不用设置 xml,零配置便于维护
  • 不需要了解 JDBC 的知识
  • SQL 语句和 java 代码的分离
  • 接口和实现分离,不用写持久层代码,用户只需写接口,以及某些接口方法
  • 对应的 SQL。它会通过 AOP 自动生成实现类
  • 支持自动事务处理和手动事务处理
  • 支持与 hibernate 轻量级无缝集成
  • SQL 支持脚本语言
  • Sql 性能优于 Mybatis

用法

主要注解

注解标签 说明 示例
@Sql 定义 SQL 内容 @Sql("select * from users where id = :id")
@Param 定义 Sql 传入参数名
说明: Dao 接口定义,所有参数必须使用 @param 标签
Users get(@Param("id") String id);
@ResultType 定义 SQL 执行返回结果类型
说明:单个实体或者弱类型返回类型,不需要设置
@ResultType(Users.class)
public MiniDaoPage getAll();
@IdAutoGenerator 主键策略
1.增加 ID 标签注解
2.返回类型设置 int 类型
//ID 采用自增策略,并返回自增 ID
@IdAutoGenerator(generator="native")
@Sql("insert into users...
public int insert...
@Repository
public interface UsersDao {

    //=========================注解=======================
    @Sql("select count(*) from users ")
    public long count();

    @Sql("select * from users")
    public List<Users> list();

    @Sql("select * from users")
    public List<Map<String,Object>> listMap();

    @Sql("select * from users where id=:id")
    public Users get(@Param("id")int id);

    @Sql("select * from users where id=:id")
    public Map<String,Object> getMap(@Param("id")int id);

    @Sql("delete from users where id=:id")
    public int delete(@Param("id")int id);

    @Sql("update users set username=:username ,name=:name ,user_phone=:phone where id=:id")
    public int update(@Param("username") String username,@Param("name") String name,@Param("id") int id,@Param("phone")String phone);

    //ID采用自增策略,并返回自增ID
    @IdAutoGenerator(generator="native")
    @Sql("insert into users(username,name,password ) value (:username,:name,:password)")
    public int insert( @Param("username") String username, @Param("name") String name, @Param("password") String password);

//=========================Sql文件===================
    //SQL文件目录规则,与minidao接口保持相同目录
    // (或者放在对应resource目录下)
    // SQL文件命名规则:{Dao接口名}_{方法名}.sql

    @ResultType(Users.class)
    public List<Users> listSQL(@Param("users")Users users,@Param("page")int page,@Param("rows")int rows);


  • 本项目是基于 springboot 的,当 sql 文件放置于 minidao 接口相同目录时,无法找到该文件,只能配置在 resources 下对应目录下。

运行结果:

1537459881890png

总结:

基本上都很简单,只要写原生的 sql 就行。字段跟属性能够自动映射。MyBatis 就需要配置映射关系,确实简化很多。

本例代码:minidao_demo

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...