在查询这里,增加了这么几类函数(有部分是借鉴别的框架):
a.单行查询one
Copy public NeoMap one( String tableName , NeoMap searchMap) {}
public < T > T one( String tableName , T entity) {}
public NeoMap one( String tableName , Columns columns , NeoMap searchMap) {}
public < T > T one( String tableName , Columns columns , T entity) {}
注意:
1.one执行的时候会自动在sql语句最后添加limit 1
2.(重要)在搜索条件中对于排序可以放到搜索条件中,如下,其中排序适用于后面所有的查询
Copy /**
* 测试order by
*/
@ Test
public void testOrderBy1() {
// select `name` from neo_table1 where `group` = ? order by `name` desc
show( neo . list(TABLE_NAME , Columns . of( "name" ) , NeoMap . of( "group" , "g" , "order by" , "name desc" ))) ;
}
@ Test
public void testOrderBy2() {
// select `name` from neo_table1 where `group` = ? order by `name` desc, `group` asc limit 1
show( neo . list(TABLE_NAME , Columns . of( "name" ) , NeoMap . of( "group" , "g" , "order by" , "name desc, group asc" ))) ;
}
@ Test
public void testOrderBy3() {
// select `name` from neo_table1 where `group` = ? order by `name`, `group` desc, `id` asc limit 1
show( neo . list(TABLE_NAME , Columns . of( "name" ) , NeoMap . of( "group" , "g" , "order by" , "name, group desc, id asc" ))) ;
}
b.多行查询list
多行查询函数的参数跟单行查询的函数是相同的
Copy public < T > List< T > list( String tableName , T entity) {}
public List< NeoMap > list( String tableName , NeoMap searchMap) {}
public < T > List< T > list( String tableName , Columns columns , T entity) {}
public List< NeoMap > list( String tableName , Columns columns , NeoMap searchMap) {}
参数同one
c.分页查询page
Copy public List< NeoMap > page( String tableName , Columns columns , NeoMap searchMap , NeoPage page) {}
public < T > List< T > page( String tableName , Columns columns , T entity , NeoPage page) {}
public List< NeoMap > page( String tableName , NeoMap searchMap , NeoPage page) {}
public < T > List< T > page( String tableName , T entity , NeoPage page) {}
public List< NeoMap > page( String tableName , Columns columns , NeoPage page) {}
public List< NeoMap > page( String tableName , NeoPage page) {}
d.个数查询count
针对个数的查询有下面这个几个函数
Copy public Integer count( String tableName , NeoMap searchMap) {}
public Integer count( String tableName , Object entity) {}
public Integer count( String tableName) {}
e.单值查询value
针对这个查询,其实就是查询某一行中的某个列的值
Copy public String value( String tableName , String field , Object entity) {}
public String value( String tableName , String field , NeoMap searchMap) {}
public < T > T value( Class< T > tClass , String tableName , String field , NeoMap searchMap) {}
public < T > T value( Class< T > tClass , String tableName , String field , Object entity) {}
f.单列多值查询values
单列多值的函数为values
,对应的参数和上面介绍的value
相同
g.直接执行sql
直接执行这里面除了直接执行数据之外,还可以执行获取单列,单值,多列,个数等
直接执行
Copy public List<List< NeoMap >> execute( String sql , Object ... parameters ) {}
sql是包含java的String的格式化转换符和JDBC的占位符"?"的,比如
Copy neo . execute ( "update %s set `group`=?, `name`=%s where id = ?" , TABLE_NAME , "group121" , "'name123'" , 121 )
占位符:
java的转换符:
注意:
该execute不支持多语句执行,如果想执行多语句,则可以用事务方式,参考下面的tx,或者可以通过多结果集的方式,举例如下:
Copy /**
* 测试多结果集
* CREATE PROCEDURE `pro`()
* BEGIN
* explain select * from neo_table1;
* select * from neo_table1;
* END
*/
@ Test
public void testExecute5() {
show( neo . execute( "call pro()" )) ;
}
执行获取单行
执行单行其实就是在sql的最后添加limit 1,并返回唯一一个结果实体
Copy public NeoMap exeOne( String sql , Object ... parameters ) {}
public < T > T exeOne( Class< T > tClass , String sql , Object ... parameters ) {}
执行获取多行
Copy public List< NeoMap > exeList( String sql , Object ... parameters ) {}
public < T > List< T > exeList( Class< T > tClass , String sql , Object ... parameters ) {}
执行获取分页
Copy public List< NeoMap > exePage( String sql , Integer startIndex , Integer pageSize , Object ... parameters ) {}
public List< NeoMap > exePage( String sql , NeoPage neoPage , Object ... parameters ) {}
执行获取个数
Copy public Integer exeCount( String sql , Object ... parameters ) {}
执行获取单个值
Copy public String exeValue( String sql , Object ... parameters ) {}
public < T > T exeValue( Class< T > tClass , String sql , Object ... parameters ) {}
执行获取单列多值
Copy public List< String > exeValues( String sql , Object ... parameters ) {}
public < T > List< T > exeValues( Class< T > tClass , String sql , Object ... parameters ) {}