# GyJdbc
**Repository Path**: bigfacecat-zhouning/GyJdbc
## Basic Information
- **Project Name**: GyJdbc
- **Description**: 面向对象的SQL拼接,降低拼接sql出错概率,链式sql配合lambda表达式,真的巴适
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 0
- **Created**: 2019-10-22
- **Last Updated**: 2025-06-07
## Categories & Tags
**Categories**: database-dev
**Tags**: None
## README
## 是什么
GyJdbc基于jdbctemplate的类似JPA的持久层框架封装,使用优势:
1. **Dao层0代码,再也不需要为Dao层的方法名称命名掉头发。**
2. **链式SQL配合lambda表达式,既装B又简洁。**
3. **强悍的SQL拼接,支持作者已知的所有SQL语法。**
4. **学习成本极低,靠近SQL语法,开发者使用起来会像平时一样写SQL一样简单。**
5. **提供类JPA语法,类MongoTemplate的SQL拼接语法**
6. **支持多数据源,多数据源的负载均衡,仅需一个注解或者一个方法调用。**
#### 快速开始
**step1.添加maven坐标**
```xml
io.github.springstudent
GyJdbc
1.4.2.RELEASE
```
**step2.定义Pojo类,对应数据库中的一张表。**
`@Table`注解,`name`定义pojo类与数据库表的关系,`pk`指定表的主键
```java
@Table(name = "tb_user", pk = "id")
public class TbUser {
private String id;
private String name;
private String realName;
private String pwd;
private String email;
private String mobile;
private Date birth;
private Integer age;
private String career;
private Integer isActive = 0;
private Integer roleId;
}
```
**step3.定义Dao与DaoImpl,分别继承自EntityDao和EntityDaoImpl**
```java
public interface TbUserDao extends EntityDao {
}
@Repository
public class TbUserDaoImpl extends EntityDaoImpl implements TbUserDao {
}
```
**step4.在Service层注入Dao,使用EntityDao提供的方法完成增、删、改、查**
增
```java
void save(T t)throws Exception;
void batchSave(List list)throws Exception;
int insertWithSql(SQL sql)throws Exception;
```
删
```java
void delete(Id id)throws Exception;
void deleteWithCriteria(Criteria criteria)throws Exception;
void batchDelete(List ids)throws Exception;
int deleteWithSql(SQL sql)throws Exception;
void truncate()throws Exception;
void drop()throws Exception;
void drunk(SQL sql)throws Exception;
```
改
```java
void update(T t)throws Exception;
void batchUpdate(List list)throws Exception;
int updateWithSql(SQL sql)throws Exception;
```
查
```java
T queryOne(Id id)throws Exception;
List queryAll()throws Exception;
PageResult pageQuery(Page page)throws Exception;
PageResult pageQueryWithCriteria(Page page,Criteria criteria)throws Exception;
List queryWithCriteria(Criteria criteria)throws Exception;
Result queryWithSql(Class clss,SQL sql)throws Exception;
List