Skip to content

codingapi/simple-mybatis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Maven Central codecov

simple-mybatis

前言

随着springboot开发方式的流行,但是还有好多人在使用mybatis时依旧采用xml的方式配置mapper,该框架出现的主要原因是为了让Mybatis更方便的在springboot项目下上使用。

框架说明

  • 框架依赖并兼容jpa注解
  • 提供了常用操作的Mapper封装
  • 基于pagehelper提供了分页的规范支持
  • 提供Query方式对查询语句的支持
  • 提供Tree数据格式的规范支持

仓库地址

<dependency>
    <groupId>com.codingapi</groupId>
    <artifactId>simple-mybatis</artifactId>
    <version>${last.version}</version>
 </dependency>

使用说明

  • jpa注解的使用
@Data
@Table(name = "t_demo")
public class Demo implements ITree<Long>{ //ITree根据业务需要可不实现

  //Id 注解  
  @Id
  private Long id;

  //数据库字段与属于想一致时可忽略@Column注解
  private Long superId;

  private String name;

  //字段名称  
  @Column(name = "s_module")
  private String module;

  private String myName;
  
  //忽略字段 
  @Transient
  private String test;

}
  • CommandMapper 提供了所有常用的写操作
  //保存数据,会返回主键Id
  int save(T t);

  //批量保存  
  int saveAll(List<T> list);

  //修改数据,修改数据只会替换非null对象
  int update(T t);

  //删除数据,删除条件为Id
  int delete(T t);

  //批量删除,删除条件为Id
  int deleteAll(List<T> list);

  //通过Id直接删除
  int deleteById(Object id);

  //通过Id批量删除
  int deleteAllById(List id);
  • QueryMapper提供常用的查询操作
  //通过Id查询
  T getById(Object id);

  //查询属于数据
  List<T> findAll();

  //通过Query查询数据
  List<T> query(Query query);

  //通过Query查询试图数据,返回List Map对象
  List<Map<String,Object>> queryMap(Query query);

  //通过Query查询试图数据,返回List Bean对象
  <V> List<V> queryView(Class<V> clazz, Query query);
  • SimpleMapper提供了QueryMapperCommandMapper的功能

  • IPageQuery 提供基于MybatisHelper的分页支持

    PageList<Demo> pageList =  demoMapper.page(1, 5, demoMapper::findAll);
	log.info("page:{}",pageList);
  • ITreeQuery 提供树形数据结构组装
    //实现ITree接口
    public class Demo implements ITree<Long>{
      //fields get set ...
    }

    List<TreeList<Demo>> treeLists =  demoMapper.tree( demoMapper::findAll,0L);
	log.info("treeLists:{}",treeLists);
  • query使用说明
    query 通过QueryBuilder来创建,当查询返回的是表的数据,则不需要写select语句,直接拼接where()查询条件。
    若查询返回的是视图格式的数据则需要写select语句,select语句中可以写join关联.
    select语句中的字段可以用下划线,也可以直接处理成小驼峰。都可以转成java bean对象。
    @Test
    void viewList(){
        List<DemoView> list =
                demoMapper.queryView(
                        DemoView.class,
                        QueryBuilder.Build()
                                .select("select * from t_demo d left join t_refrigerator r on d.id = r.ID ")
                                .where()
                                .condition("d.id between #{small} and #{larger}", Map.of("small",1,"larger",10))
                                .or()
                                .condition("r.state = #{state}",1)
                                .and()
                                .condition("d.id in (${ids})",1,2,3,4,5,6,7,8,9,10)
                                .or()
                                .condition("d.name like '%${name}%'","2")
                                .orderBy("d.id desc")
                                .builder());
        log.info("list:{}",list);
    }

    @Test
    void queryList(){
        //select * from t_demo where name = '123'
        List<Demo> list = demoMapper.query(QueryBuilder.Build().where().condition("name=#{name}","123").builder());
        log.info("list:{}",list);
    }

示例

https://github.com/1991wangliang/simple-mybatis-demo

支持

issue

使用建议

设计数据库时可以先定义类,然后通过jap扫描这些entity来创建数据库,这样做不仅可以完成数据库的设计,也可以直接完成entity的定义,由于框架兼任了jpa注解也不会在框架使用这些entity上出现错误。

About

simple-mybatis

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy