https://github.com/raomuyang/suniper-cenj
Crud Enhancer is Not a JPA framework
https://github.com/raomuyang/suniper-cenj
sql-generation
Last synced: 2 months ago
JSON representation
Crud Enhancer is Not a JPA framework
- Host: GitHub
- URL: https://github.com/raomuyang/suniper-cenj
- Owner: raomuyang
- License: apache-2.0
- Created: 2018-08-27T09:48:48.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-08-31T10:07:50.000Z (almost 7 years ago)
- Last Synced: 2025-01-29T06:51:26.436Z (4 months ago)
- Topics: sql-generation
- Language: Java
- Homepage:
- Size: 36.1 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## SUNIPER-CENJ
[](https://travis-ci.org/suniper/suniper-cenj) [](https://coveralls.io/github/suniper/suniper-cenj?branch=master)
> Crud Enhancer is Not a JPA framework.
This is a tool that can be auto-generated SQL from method name,
you can define a series of interfaces and hand over the work of creating
an instance to CENJ### Quick start
* Maven dependency:
```xmlcn.suniper.cenj
suniper-cenj
0.2.0```
* Define interface:
```java
interface Operator {
Entity findById(String id);
void deleteByName(String name);
// ...
}
```
* Implement your SQLExecutor and create a RepositoryFactory, get an instance by factory:
```java
SQLExecutor executor = ;
String tableName = ;
RepositoryFactory factory = new RepositoryFactory(executor, table);Operator operator = factory.getRepositoryInstance(Operator.class);
operator.deleteByName("test");
...
```### Some examples: method name to SQL
```
"deleteByA" => "DELETE * FROM TEST WHERE A = ?"
"queryTop10ByA" => "SELECT TOP 10 FROM TEST WHERE A = ?"
"queryTop10ByAAndB" => "SELECT TOP 10 FROM TEST WHERE A = ? AND B = ?"
"countByA" => "SELECT COUNT(*) FROM TEST WHERE A = ?"
"find" => "SELECT * FROM TEST"
"findAll" => "SELECT * FROM TEST"
"findByAGreaterThan" => "SELECT * FROM TEST WHERE A > ?"
"findByAGreaterThanEquals" => "SELECT * FROM TEST WHERE A >= ?"
"findByALessThan" => "SELECT * FROM TEST WHERE A < ?"
"findByALessThanEquals" => "SELECT * FROM TEST WHERE A <= ?"
"findByABefore" => "SELECT * FROM TEST WHERE A < ?"
"findByAAfter" => "SELECT * FROM TEST WHERE A > ?"
"findByANot" => "SELECT * FROM TEST WHERE A <> ?"
"findByANotIn" => "SELECT * FROM TEST WHERE A NOT IN (?)"
"findByAIn" => "SELECT * FROM TEST WHERE A IN (?)"
"findByAaBbStartingWith" => "SELECT * FROM TEST WHERE AABB LIKE '?%'"
"findByAContaining" => "SELECT * FROM TEST WHERE A LIKE '%?%'"
"findByAIsTrue" => "SELECT * FROM TEST WHERE A IS TRUE"
"findByAOrderByB" => "SELECT * FROM TEST WHERE A = ? ORDER BY B"
"findName" => "SELECT NAME FROM TEST"
"findNameOrderByCreatedTs" => "SELECT NAME FROM TEST ORDER BY CREATEDTS"
"deleteTop10" => "DELETE TOP 10 FROM TEST"
```---
> Welcome to create issue or contact us when you have any problems, thanks