• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

sonsure-dumper: 简单、快速、方便、易用的jdbc持久化操作层

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

sonsure-dumper

开源软件地址:

https://gitee.com/selfly/sonsure-dumper

开源软件介绍:

Sonsure-Dumper

简单、快速、易用的jdbc持久化操作层。

示例

//根据主键获取User user = jdbcDao.get(User.class, 177);//查询所有列表List<User> users = jdbcDao.find(User.class);//查询分页列表Page<User> page = jdbcDao.pageResult(user);//会根据user对象中不为null的属性做为条件查询long count = jdbcDao.findCount(user);//会根据user对象中不为null的属性做为条件查询 没有数据时返回null,超过一条时会抛出异常User user = jdbcDao.singleResult(user);//超过一条时取第一条,有经过分页处理,全表查取第一条也不用担心返回数据过多User user = jdbcDao.firstResult(user);//会根据主键策略自动处理主键,如果实体对象中设置了主键值则不再处理//返回的主键值类型根据生成的主键不同可自行转换Long id = (Long)jdbcDao.executeInsert(user);//根据主键更新实体对象jdbcDao.executeUpdate(user);//根据主键删除实体对象jdbcDao.executeDelete(User.class, 1800081L);//SQL: update User set user_age = user_age + 1 where user_info_id = 17jdbcDao.update(User.class)        .set("{{userAge}}", "userAge+1")        .where("userInfoId", 17L)        .execute();//SQL: select user_age, count(*) num from user_info group by user_age order by num desc limit 0,10Page<Object> page = jdbcDao.select("userAge,count(*) Num")        .from(UserInfo.class)        .groupBy(UserInfo::getUserAge()) //4.0版开始属性推荐使用lambda方式,防止拼错        .orderBy("Num").desc()        .paginate(1, 10)        .isCount(false)        .pageResult();

特点

  • 省去各类dao或baseDao,甚至不需要声明或注入dao
  • 学习成本低,api跟sql高度一致,会sql即会使用
  • 条件设置支持各类符号,=、!=、or、in、not in甚至是执行函数
  • 允许指定排序字段,可以指定多个组合升降自由排序
  • 支持显示指定或排除某个字段,以及添加额外的函数类字段,只取想要的数据
  • 内置分页功能,自动进行分页处理无需再写分页代码
  • 可以使用{{}}符号完成一些特殊的sql,例如user_age = user_age + 1这种不适合传参的情况
  • 支持native方式执行自定义sql
  • 支持整合Mybatis,以Mybatis的方式书写sql
  • 易扩展,各组件如主键生成器、分页器、命令构建器(sql/hql等)、持久化实现等均可扩展或重写

组件本质上也只是封装了一个通用dao,只不过更加方便易用。当发现组件缺少某项功能或不能满足需求时仍可以用本来原生的方式执行,完全无影响。

使用

添加依赖,默认使用Spring Jdbc实现,可更换成自己想要的实现:

<dependency>    <groupId>com.sonsure</groupId>    <artifactId>sonsure-dumper-springjdbc</artifactId>    <version>${version}</version></dependency>

声明Bean,更多参数详见相关配置文档:

<bean id="jdbcDao" class="com.sonsure.dumper.springjdbc.persist.SpringJdbcDaoTemplateImpl">    <property name="dataSource" ref="dataSource"/></bean>

传统注入方式使用JdbcDao:

//不管哪个实体对象都使用该JdbcDao就可以@Autowiredprivate JdbcDao jdbcDao;jdbcDao.get(User.class, 177);

如果开启了全局模式,可以直接使用Jdbc操作:

User user = Jdbc.get(User.class, 177);

相关文档

说明文档中可能会有xml方式配置或JavaConfig方式配置,两种方式效果是一样的,可根据情况自行转换。

参与贡献

github:https://github.com/selfly/sonsure-dumper
gitee: https://gitee.com/selfly/sonsure-dumper

  1. Fork 本项目
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap