# vonce-sqlbean
**Repository Path**: yuhf/vonce-sqlbean
## Basic Information
- **Project Name**: vonce-sqlbean
- **Description**: 这是一款使用Java面向对象思想来编写并生成Sql语句的工具,并在此基础上同时对Mybatis和Spring Jdbc实现了类似于JPA的轻量级插件支持。插件中内置大量常用Sql执行的方法,目的是为了提高开发效率,减少大量的Sql语句编写,让开发者更专注于业务代码的编写。
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://gitee.com/iJovi/vonce-sqlbean
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 22
- **Created**: 2020-07-21
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## Sqlbean(Sql生成助手)
#### 介绍
###### 这是一款使用Java面向对象思想来编写并生成Sql语句的工具,并在此基础上同时对Mybatis和Spring Jdbc实现了类似于JPA的轻量级插件支持。插件中内置大量常用Sql执行的方法,目的是为了提高开发效率,减少大量的Sql语句编写,让开发者更专注于业务代码的编写。
###### 特点:零配置,连表查询,乐观锁,分页,支持Mybatis、Spring Jdbc
###### 环境:JDK7+,Mybatis3.2.4+,(Spring MVC 4.1.2+ 或 Spring Boot 1x 或 Spring Boot 2x)
###### 数据库:Mysql,MariaDB,Oracle,Sqlserver2008+,PostgreSQL,DB2,Derby,Sqlite,HSQL,H2
#### 简单上手
###### 1:引入Maven依赖
cn.vonce
vonce-sqlbean
1.3.0
###### 2:标注实体类
```java
@SqlConstant //标识该数据库实体类生成Sql常量类
@SqlTable("d_essay")
public class Essay {
@SqlId(generateType = GenerateType.UUID)
@SqlColumn("id")
private String id;
@SqlColumn("userId" )
private String userId;
@SqlColumn("content" )
private String content;
@SqlColumn("creationTime" )
private Date creationTime;
/**省略get set方法*/
}
```
###### 3:无需Dao层,Service层接口只需继承SqlBeanService<实体类,ID>
```java
public interface EssayService extends SqlBeanService {
//已内置大量常用查询、更新、删除、插入方法,这里可以写自己封装的方法
Essay selectByUserId(String userId);
List selectByTimeRange(String start,String end);
long updateEssayById(String userId);
}
```
###### 4:Service实现类只需继承MybatisSqlBeanServiceImpl<实体类,ID>和实现你的Service接口
```java
@Service
public class EssayServiceImpl extends MybatisSqlBeanServiceImpl implements EssayService {
public Essay selectByUserId(String userId){
return super.selectOneByCondition("& = ?", SqlEssay.userId, userId);
}
public List selectByTimeRange(String start,String end){
return super.selectByCondition("& > ? AND & < ?", SqlEssay.creationTime, start, SqlEssay.creationTime, end);
}
public long updateEssayById(String userId){
Essay essay = new Essay();
essay.setId(userId);
essay.setContent("欢迎使用Sqlbean");
//return super.updateByCondition(essay, true, "& = ?", SqlEssay.id, id);
//return updateById(essay, userId, true);
return updateByBeanId(essay, true);
}
//更多用法查阅详细文档
}
```
###### 5:Controller层
```java
@RequestMapping("essay")
@RestController
public class EssayController {
@Autowired
private EssayService essayService;
//查询
@GetMapping("get")
public RS get() {
List list = essayService.selectAll();
list = essayService.selectByCondition("& = ?" , SqlEssay.type, 2);
Essay essay = essayService.selectById(1);
essay = essayService.selectOneByCondition("& = ?" , SqlEssay.id, 1);
return super.successHint("获取成功", list);
// 更多用法请查看下方详细文档...
}
//分页
@GetMapping("getList")
public RS getList(HttpServletRequest request) {
// 查询对象
//Select select = new Select();
// 分页助手
//PageHelper pageHelper = new PageHelper<>(request);
// 分页查询
//pageHelper.paging(select, essayService);
// 返回结果
//return super.customHint(pageHelper.toResult("获取列表成功"));
// 或者这样
return super.customHint(new PageHelper(request).paging(new Select(),essayService).toResult("获取文章列表成功"));
}
//更新
@PostMapping("update")
public RS update(String id) {
long i = essayService.updateEssayById(id);
if (i > 0) {
return super.successHint("更新成功");
}
return super.othersHint("更新失败");
}
//删除
@PostMapping("deleteById")
public RS deleteById(Integer[] id) {
long i = essayService.deleteById(id);
if (i > 0) {
return super.successHint("删除成功");
}
return super.othersHint("删除失败");
}
//插入
@PostMapping("add")
public RS add() {
List essayList = new ArrayList<>();
for (int i = 0; i < 100; i++) {
Essay essay = new Essay(i, "name" + i);
essayList.add(essay);
}
essayService.insert(essayList);
return successHint("成功");
}
}
// 更多用法请查看下方详细文档...
```
###### 如果使用的是Spring JDBC那么将“MybatisSqlBeanServiceImpl”改为“SpringJdbcSqlBeanServiceImpl”即可
[========]
##### ↓更多用法请查看下方文档↓
#### [注解与用法(含ID生成、乐观锁、逻辑删除、连表查询)](https://github.com/Jovilam77/vonce-sqlbean/blob/develop/doc/Annotation.md "注解与用法(含ID生成、乐观锁、逻辑删除、连表查询)")
#### [内置Select相关方法](https://github.com/Jovilam77/vonce-sqlbean/blob/develop/doc/Select.md "内置Select相关方法")
#### [内置Insert相关方法](https://github.com/Jovilam77/vonce-sqlbean/blob/develop/doc/Insert.md "内置Insert相关方法")
#### [内置Delete相关方法](https://github.com/Jovilam77/vonce-sqlbean/blob/develop/doc/Delete.md "内置Delete相关方法")
#### [内置Update相关方法](https://github.com/Jovilam77/vonce-sqlbean/blob/develop/doc/Update.md "内置Update相关方法")
#### [Service接口和实现类](https://github.com/Jovilam77/vonce-sqlbean/blob/develop/doc/Interface.md "Service接口和实现类")
#### [SqlBean和SqlHelper](https://github.com/Jovilam77/vonce-sqlbean/blob/develop/doc/SqlHelper.md "SqlBean和SqlHelper")
#### [Where条件和占位符](https://github.com/Jovilam77/vonce-sqlbean/blob/develop/doc/Where.md "Where条件和占位符")
#### [分页查询](https://github.com/Jovilam77/vonce-sqlbean/blob/develop/doc/Paging.md "分页查询")