用SQL语法连接列表的Java-API
我想知道是否有用于加入列表并生成新列表的Java API: 例: 注1:$X或其别名tX表示我们的listX对象,按参数的顺序,$X。调用对象的getter或使用属性的名称或使用属性的注释,其中包含名称用SQL语法连接列表的Java-API,java,sql,list,api,join,Java,Sql,List,Api,Join,我想知道是否有用于加入列表并生成新列表的Java API: 例: 注1:$X或其别名tX表示我们的listX对象,按参数的顺序,$X。调用对象的getter或使用属性的名称或使用属性的注释,其中包含名称 注2:Type1、Type2、Type3、Type4不是来自同一个家族没有继承我以前在Java中没有见过这种API,可能是C?中的LINQ,因此我决定创建自己的Java API,用于使用SQL查询操作Java bean 看看它是如何工作的: import fr.ekinci.dbmsreplic
注2:Type1、Type2、Type3、Type4不是来自同一个家族没有继承我以前在Java中没有见过这种API,可能是C?中的LINQ,因此我决定创建自己的Java API,用于使用SQL查询操作Java bean 看看它是如何工作的:
import fr.ekinci.dbmsreplication.inmemorysql.InMemorySQL;
//...
String sqlRequest = "SELECT t1.id_d1, t1.attr2, t1.attr3, t2.id_d2, t2.attr4, t3.id_d3, t3.attr5 " +
" FROM t1" +
" LEFT JOIN t2" +
" ON t1.id_d1 = t2.id_d1" +
" LEFT JOIN t3" +
" ON t2.id_d2 = t3.id_d3" +
" ORDER BY t1.id_d1, t2.id_d2, t3.id_d3";
List<Dumb1> ldb1 = new ArrayList<>(); // fill it
List<Dumb2> ldb2 = new ArrayList<>(); // fill it
List<Dumb3> ldb3 = new ArrayList<>(); // fill it
Collection<ReturnDumb> result = new InMemorySQL()
.add(Dumb1.class, ldb1) // ldb1 alias will be t1
.add(Dumb2.class, ldb2) // ldb2 alias will be t2
.add(Dumb3.class, ldb3) // ldb3 alias will be t3
.executeQuery(ReturnDumb.class, sqlRequest);
它仍处于测试阶段,.我以前在Java中没有见过这种API,可能是C?中的LINQ,因此我决定创建自己的Java API,用于使用SQL查询操作Java bean 看看它是如何工作的:
import fr.ekinci.dbmsreplication.inmemorysql.InMemorySQL;
//...
String sqlRequest = "SELECT t1.id_d1, t1.attr2, t1.attr3, t2.id_d2, t2.attr4, t3.id_d3, t3.attr5 " +
" FROM t1" +
" LEFT JOIN t2" +
" ON t1.id_d1 = t2.id_d1" +
" LEFT JOIN t3" +
" ON t2.id_d2 = t3.id_d3" +
" ORDER BY t1.id_d1, t2.id_d2, t3.id_d3";
List<Dumb1> ldb1 = new ArrayList<>(); // fill it
List<Dumb2> ldb2 = new ArrayList<>(); // fill it
List<Dumb3> ldb3 = new ArrayList<>(); // fill it
Collection<ReturnDumb> result = new InMemorySQL()
.add(Dumb1.class, ldb1) // ldb1 alias will be t1
.add(Dumb2.class, ldb2) // ldb2 alias will be t2
.add(Dumb3.class, ldb3) // ldb3 alias will be t3
.executeQuery(ReturnDumb.class, sqlRequest);
它还在测试阶段