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

mybatis-dao: mybatis-spring 的通用dao,极方便的单表增删改查操作,免去了对相同方法 ...

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

开源软件名称:

mybatis-dao

开源软件地址:

https://gitee.com/zhangyosc/mybatis-dao

开源软件介绍:

通用Mybatis-DAO

通用DAO简介及特征

通用Dao是一种持久化解决方案。 具有以下特征:

  • 把单表具有重复性的操作抽离出来,避免创建不必要的xml文件
  • 不影响原mybatis框架的使用
  • SQL语句和java代码的分离
  • 极大的缩减使用mybatis 和 spring 集成框架下的工作量
  • 可支持uuid和mysql自增的主键生成策略

使用说明:作用于mybatisDAO层,依附mybatis-spring

待改进:

  • 目前只支持mysql
  • 其他

※实体的增删改查不需要写sql,支持SQL自动生成

接口定义[MessageDao.java]

public class MessageDao extends BaseDao<Message,Long>{}

BaseDAO实现的接口

<!-- 插入单条信息 -->public PK create(T object);<!-- 编辑单条信息 -->public int update(T object);<!-- 删除单条信息 -->public int remove(T object);<!-- 统计信息条数 -->public int count(T object);<!-- 批量添加多条信息 -->public void createOfBatch(List<T> list);<!-- 批量更新多条信息 -->public int updateOfBatch(List<T> list);<!--批量删除多条信息 -->public int removeOfBacth(List<T> list);<!-- 获取多条信息 -->public List<T> queryByObject(T object);<!-- 批量获取多条信息 -->public List<T> queryByList(List<T> list);<!-- 带参数的查询 排序分页 -->public List<T> queryListByCriteria(T object,String orderby,Integer offset,Integer limit);<!-- 带复杂参数的查询 排序分页-->public List<T> queryListByBatchCriteria(List<T> list,String orderby,Integer offset,Integer limit);<!-- 根据主键值查找一条记录 -->public T findById(PK id);<!-- 根据主键删除一条记录 -->public boolean removeById(PK id);

通用DAO接口配置

    <!-- 需要mybatis-spring.jar --><import resource="classpath:com/rework/joss/persistence/convention/baseDao.xml" />

##实体类注解

从上面效果来看也能感觉出这是一种类似hibernate的用法,因此也需要实体和表对应起来,因此使用了JPA注解。更详细的内容可以看下面的项目文档

Country代码:

@Table(name="user")public class UserDTO implements Serializable{	@Transient	private static final long serialVersionUID = -9015714985719637211L;		@GeneratedValue(generator = "UUID")	@Id    private String userId;        private String userName;}

测试代码

public void testCreate() {	UserDTO user = new UserDTO();	user.setUserName("huttol");	userDAO.create(user);}public void testRemoveOfBacth() {	UserDTO user2 = new UserDTO();	user2.setUserName("list2");	int remove =userDAO.removeOfBacth(ConventionUtils.toList(user2));	Assert.assertEquals(1, remove);}public void testRemoveById() {	boolean t = userDAO.removeById("200cb94c99e64b21aed5e10b94f09eeb");	Assert.assertEquals(true, t);}

##使用Maven

稍后支持

##更新日志###v1.0.0正式发布版

  • 修改并发下报key值重复的bug
  • 可以直接使用SqlSessionTemplate调用mapper.xml中的id,从而减少类数量,增加灵活性###v1.0.0版本说明支持mysql主键自增,增加批量参数处理

##作者信息作者邮箱: [email protected]


鲜花

握手

雷人

路过

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

请发表评论

全部评论

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

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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