# hibernate-plus
**Repository Path**: xiaomaoguai/hibernate-plus
## Basic Information
- **Project Name**: hibernate-plus
- **Description**: Hibernate 增强工具包 - 只做增强不做改变,更加精简持久层CRUD操作
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 114
- **Created**: 2016-12-01
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

> 为简化开发工作、提高生产率而生
# 简介 | Intro
Hibernate 增强工具包 - 只做增强不做改变,更加精简持久层`CRUD`操作
# 优点 | Advantages
- **纯正血统**:完全继承原生 `Hibernate` 的所有特性
- **最少依赖**:仅仅依赖 `Hibernate`
- **自动生成代码**:简化操作,使其专注于业务
- **自定义操作**:提供大量API,使开发更加顺畅
- **简化操作**:只需专注于业务,查询操作请交给 `Hibernate-Plus`
- **无缝分页**:基于`Hibernate`分页,无需具体实现
- **数据库友好**:基于`Hibernate`,支持目前大多数主流数据库
- **避免Sql注入**:内置对特殊字符转义,从根本上预防Sql注入攻击
- **无配置文件**:无需编写SQL配置文件(例如:`Mybatis`的XML),从而简化操作
- **主从分离**:简单配置即可实现主从分离
# 应用实例 | Demo
[Spring-MVC](http://git.oschina.net/cancerGit/springmvc-hibernate-plus)
# 结构目录 | Architecture

# 通用方法 | API

#优点?
> Hibernate-Plus都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法。
>
> 让你感觉使用Hibernate感觉跟Mybatis-Plus一样,极大简化开发。
##Hibernate-Plus - Spring集成
${hibernate.dialect}
${hibernate.show_sql}
${hibernate.format_sql}
${hibernate.use_sql_comments}
com.baomidou.hibernate.model.po
###DAO层
public interface DemoDao extends IDao {
}
@Repository
public class DemoDaoImpl extends DaoImpl implements DemoDao {
}
###Service层
public interface DemoService extends IService {
}
@Service
public class DemoServiceImpl extends ServiceImpl implements DemoService {
}
###实体类注解
@Entity
@Table(name = "demo")
@DynamicInsert(true)
@DynamicUpdate(true)
public class Tdemo extends AutoPrimaryKey {
private String demo1;
private String demo2;
private String demo3;
@Column(name = "demo1")
public String getDemo1() {
return demo1;
}
public void setDemo1(String demo1) {
this.demo1 = demo1;
}
@Column(name = "demo2")
public String getDemo2() {
return demo2;
}
public void setDemo2(String demo2) {
this.demo2 = demo2;
}
@Column(name = "demo3")
public String getDemo3() {
return demo3;
}
public void setDemo3(String demo3) {
this.demo3 = demo3;
}
}
####注解支持
>完全支持 `JPA` 注解,原生 `Hibernate` 用法
####强调
>不是表中字段的属性需要添加`@Transient`注解
####示例项目
>http://git.oschina.net/cancerGit/springmvc-hibernate-plus
##Hibernate-Plus - 简单用法示例
全部针对单表操作,每个实体类都需要继承Convert来PO、TO之间的装换
示例代码:
//查询表中所有数量
int count = demoService.selectCount();
//根据条件查询数量 Condition的链式风格使你的代码看起来更加优美
int count = demoService.selectCount(Condition.instance().eq("id",1));
//查询单条数据
Demo demo = demoService.selectOne(Condition.instance().eq("id",1));
List demos = demoService.selectOne(Condition.instance().gt("id",1).like("name","plus").in("sex","1,2,3"));
//查询分页
Page demos = demoService.selectPage(new Page(1,10));
下面是API自行感受
...
###Service通用API
public V get(Serializable id);
public V get(String property, Object value);
public V save(V vo);
public void saveOrUpdate(V vo);
public void update(V vo);
public boolean update(Map setMap, Wrapper wrapper);
public void delete(V vo);
public boolean delete(Wrapper wrapper);
public boolean insertBatch(List list);
public boolean insertBatch(List list, int size);
public boolean updateBatch(List list);
public boolean updateBatch(List list, int size);
public V selectOne(Wrapper wrapper);
public List selectList(Wrapper wrapper);
public List