hibernate 执行sql语句总结

1.使用SQLQuery

hibernate对原生SQL查询执行的控制是通过SQLQuery接口进行的.

Session.createSQLQuery();

1.1标量查询

最基本的SQL查询就是获得一个标量(数值)的列表。

sess.createSQLQuery("SELECT * FROM CATS").list();
sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").list();

返回一个Object数组(Object[])组成的List,数组每个元素都是CATS表的一个字段值。Hibernate会使用ResultSetMetadata来判定返回的标量值的实际顺序和类型。 如果要避免过多的使用ResultSetMetadata,或者只是为了更加明确的指名返回值,可以使用addScalar()。

sess.createSQLQuery("SELECT * FROM CATS")
    .addScalar("ID", Hibernate.LONG)
    .addScalar("NAME", Hibernate.STRING)
    .addScalar("BIRTHDATE", Hibernate ...
more ...

SQL小计合计汇总

CREATE TABLE #t(province nvarchar(10),city nvarchar(10),score int) 
insert into #t values('陕西','西安',3 )
insert into #t values('陕西','安康',4 )
insert into #t values('陕西','汉中',2 )
insert into #t values('广东','广州',5 )
insert into #t values('广东','珠海',2 )
insert into #t values ...
more ...