Skip to content

Commit

Permalink
key--
Browse files Browse the repository at this point in the history
  • Loading branch information
sim-wangyan committed Sep 25, 2023
1 parent 43828cd commit 8fc23ab
Show file tree
Hide file tree
Showing 37 changed files with 356 additions and 349 deletions.
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

[WIKI](https://github.com/x-ream/sqli/wiki)

sqli/sqli-QBuilder
sqli/sqli-QB
sqli/sqli-core
sqli/sqli-dialect
sqli/sqli-repo
Expand Down Expand Up @@ -88,7 +88,7 @@

1. creaet(Object) //插入一条
2. createBatch(List<Object>) //批量插入, 适用于数据导入场景
3. findToCreate(Class, Criteria.ResultMapCriteria) //QBuilder.resultKey("foo.fooName","foo_name"),
3. findToCreate(Class, Criteria.ResultMapCriteria) //QB.resultKey("foo.fooName","foo_name"),
//仅在临时表需要设置foo_name, 如果不设置, sqli默认按顺序设置c0,c1...., 无法和临时表匹配
4. createRepository(Class)
5. dropRepository(Class) //在最后调用此API, 其他框架不会关闭连接而删除临时表
Expand All @@ -106,27 +106,27 @@
代码片段:
{
CriteriaBuilder QBuilder = CriteriaBuilder.QBuilder(Order.class);
QBuilder.eq("userId",obj.getUserId()).eq("status","PAID");
CriteriaBuilder QB = CriteriaBuilder.QB(Order.class);
QB.eq("userId",obj.getUserId()).eq("status","PAID");
Criteria q = builer.build();
orderRepository.find(q);
}
{
CriteriaBuilder.ResultMapBuilder QBuilder = CriteriaBuilder.resultMapBuilder();
QBuilder.resultKey("o.id");
QBuilder.eq("o.status","PAID");
QBuilder.beginSub().gt("o.createAt",obj.getStartTime()).lt("o.createAt",obj.getEndTime()).endSub();
QBuilder.beginSub().eq("o.test",obj.getTest()).or().eq("i.test",obj.getTest()).endSub();
QBuilder.sourceScript("FROM order o INNER JOIN orderItem i ON i.orderId = o.id");
QBuilder.paged(obj);
Criteria.ResultMapCriteria resultMapCriteria = QBuilder.build();
CriteriaBuilder.ResultMapBuilder QB = CriteriaBuilder.resultMapBuilder();
QB.resultKey("o.id");
QB.eq("o.status","PAID");
QB.beginSub().gt("o.createAt",obj.getStartTime()).lt("o.createAt",obj.getEndTime()).endSub();
QB.beginSub().eq("o.test",obj.getTest()).or().eq("i.test",obj.getTest()).endSub();
QB.sourceScript("FROM order o INNER JOIN orderItem i ON i.orderId = o.id");
QB.paged(obj);
Criteria.ResultMapCriteria resultMapCriteria = QB.build();
omsRepository.find(resultMapCriteria);
}
{
orderRepository.refresh(
RefreshBuilder.QBuilder().refresh("status","PAYING").eq("id",1).eq("status","UN_PAID").build()
RefreshBuilder.QB().refresh("status","PAYING").eq("id",1).eq("status","UN_PAID").build()
);
}
Expand Down Expand Up @@ -182,7 +182,7 @@
sourceScript/sourceBuilder
如果条件和返回都不包括sourceScript里的连表,框架会优化移除连接(但目标连接表有用时,中间表不会
被移除)。
关闭优化: QBuilder.withoutOptimization()
关闭优化: QB.withoutOptimization()
in
每500个条件会切割出一次in查询
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
<description>http://sqli.xream.io</description>
<url>http://sqli.xream.io</url>
<modules>
<module>sqli-QBuilder</module>
<module>sqli-builder</module>
<module>sqli-core</module>
<module>sqli-repo</module>
<module>sqli-dialect</module>
</modules>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
<maven.test.skip>true</maven.test.skip>
Expand Down
2 changes: 1 addition & 1 deletion sqli-builder/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>sqli-QBuilder</artifactId>
<artifactId>sqli-QB</artifactId>

</project>
2 changes: 1 addition & 1 deletion sqli-builder/src/main/java/io/xream/sqli/builder/Q.java
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ public boolean isAbort(){

private boolean isSubAbort(List<SourceScript> sourceScripts){
for (SourceScript ss : sourceScripts) {
X sub = ss.getSubCriteria();
X sub = ss.getSubQ();
if (sub == null)
continue;
if (sub.sourceScripts == null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
/**
* @author Sim
*/
public interface CondToSql extends BbQToSql, BbQToSql.Filter, BbQToSql.Pre {
public interface Q2Sql extends BbQToSql, BbQToSql.Filter, BbQToSql.Pre {

String toConditionSql(BbQ qCondition, List<Object> valueList, Mappable mappable) ;
String toBbqSql(BbQ qCondition, List<Object> valueList, Mappable mappable) ;

void toSql(boolean isSub, Q q, SqlBuilt sqlBuilt, SqlBuildingAttached sqlBuildingAttached) ;

String toSql(Parsed parsed, RefreshCond refreshCondition, DialectSupport dialectSupport);
String toSql(Parsed parsed, RQ RQ, DialectSupport dialectSupport);

}
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@
/**
* @author Sim
*/
public class QBuilder<T> extends BbQBuilder {
public class QB<T> extends BbQBuilder {

private Q q;
private PageBuilder pageBuilder;
protected SourceScript sourceScriptTemp;

public QBuilder<T> routeKey(Object routeKey) {
public QB<T> routeKey(Object routeKey) {
this.q.setRouteKey(routeKey);
return this;
}
Expand Down Expand Up @@ -86,7 +86,7 @@ public void paged(Paged paged) {
q.paged(paged);
}

public QBuilder<T> sortIn(String porperty, List<? extends Object> inList) {
public QB<T> sortIn(String porperty, List<? extends Object> inList) {
if (Objects.nonNull(inList) && inList.size() > 0) {
KV kv = new KV(porperty, inList);
List<KV> fixedSortList = q.getFixedSortList();
Expand All @@ -99,7 +99,7 @@ public QBuilder<T> sortIn(String porperty, List<? extends Object> inList) {
return this;
}

public QBuilder<T> sort(String orderBy, Direction direction) {
public QB<T> sort(String orderBy, Direction direction) {
if (SqliStringUtil.isNullOrEmpty(orderBy))
return this;
List<Sort> sortList = q.getSortList();
Expand All @@ -112,22 +112,22 @@ public QBuilder<T> sort(String orderBy, Direction direction) {
return this;
}

private QBuilder(Q q) {
private QB(Q q) {
super(q.getBbList());
this.q = q;
}

public static <T> QBuilder<T> of(Class<?> clz) {
public static <T> QB<T> of(Class<T> clz) {
Q q = new Q();
q.setClzz(clz);
QBuilder<T> QBuilder = new QBuilder(q);
QB<T> QB = new QB(q);

if (q.getParsed() == null) {
Parsed parsed = Parser.get(clz);
q.setParsed(parsed);
}

return QBuilder;
return QB;
}

public static X x() {
Expand All @@ -153,58 +153,58 @@ public void clear(){
}


public static final class X extends QBuilder {
public static final class X extends QB {

private SourceScriptBuilder sourceScriptBuilder = new SourceScriptBuilder() {
private SourceBuilder sourceBuilder = new SourceBuilder() {

@Override
public SourceScriptBuilder source(String source) {
public SourceBuilder source(String source) {
sourceScriptTemp.setSource(source);
return this;
}

@Override
public SourceScriptBuilder source(Class clzz) {
public SourceBuilder source(Class clzz) {
sourceScriptTemp.setSource(BeanUtil.getByFirstLower(clzz.getSimpleName()));
return this;
}

@Override
public SourceScriptBuilder sub(Sub sub) {
X subBuilder = QBuilder.x();
public SourceBuilder sub(Sub sub) {
X subBuilder = QB.x();
sub.buildBy(subBuilder);
Q.X resultMapCriteria = subBuilder.build();
sourceScriptTemp.setSubCriteria(resultMapCriteria);
sourceScriptTemp.setSubQ(resultMapCriteria);
subBuilder.clear();
return this;
}

@Override
public SourceScriptBuilder with(Sub sub){
public SourceBuilder with(Sub sub){
sourceScriptTemp.setWith(true);
return sub(sub);
}

@Override
public SourceScriptBuilder alia(String alia) {
public SourceBuilder alia(String alia) {
sourceScriptTemp.setAlia(alia);
return this;
}

@Override
public SourceScriptBuilder join(JoinType joinType) {
public SourceBuilder join(JoinType joinType) {
sourceScriptTemp.setJoinType(joinType);
return this;
}

@Override
public SourceScriptBuilder join(String joinStr) {
public SourceBuilder join(String joinStr) {
sourceScriptTemp.setJoinStr(joinStr);
return this;
}

@Override
public SourceScriptBuilder on(String key, JoinFrom joinFrom) {
public SourceBuilder on(String key, JoinFrom joinFrom) {
if (key.contains("."))
throw new IllegalArgumentException("On key can not contains '.'");
On on = new On();
Expand All @@ -216,7 +216,7 @@ public SourceScriptBuilder on(String key, JoinFrom joinFrom) {
}

@Override
public SourceScriptBuilder on(String key, Op op, JoinFrom joinFrom) {
public SourceBuilder on(String key, Op op, JoinFrom joinFrom) {
if (key.contains("."))
throw new IllegalArgumentException("On key can not contains '.'");
On on = new On();
Expand Down Expand Up @@ -246,10 +246,10 @@ protected X getInstance(){
return this.instance;
}

public SourceScriptBuilder sourceBuilder() {
public SourceBuilder sourceBuilder() {
sourceScriptTemp = new SourceScript();
get().getSourceScripts().add(sourceScriptTemp);
return this.sourceScriptBuilder;
return this.sourceBuilder;
}

public X withoutOptimization() {
Expand Down
Loading

0 comments on commit 8fc23ab

Please sign in to comment.