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 下对应目录下。
运行结果:
总结:
基本上都很简单,只要写原生的 sql 就行。字段跟属性能够自动映射。MyBatis 就需要配置映射关系,确实简化很多。
本例代码:minidao_demo
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于