Hibernate的检索方式(3)sql

来源:互联网 发布:python 字典嵌套 list 编辑:程序博客网 时间:2024/05/16 10:24

方式一:

Query query = session.createSQLQuery(“select o.name from CUSTOMERS c where c.name=‘tom’”);

query.list();

方式二:参数查询

Query query =session.createSQLQuery(“select * from CUSTOMERS c where c.name=?”);

query.setString(“0”,’tom’)

query.list();

此时返回Object数组或者是返回一个Object对象(这里如果查询结果是1个值,就是Object对象,如果查询结果是多个值就是Object数组

 

方式三:Sql语句封装对象

SQLQuery sqlquery = session.createSQLQuery("select {c.*} from CUSTOMERS c where c.name =:customerName");

// 动态绑定参数

sqlquery.setString("customerName", “tom");

//“c”用来引用数据表的别名,例如以上代码中{c.*}表示使用c来作为customers表别名。  把sql查询返回的关系数据映射为对象

sqlquery.addEntity("c", Customer.class);

// 执行sql select语句,返回查询结果。

List list = sqlquery.list();

1)条件查询

Query query = s.createSQLQuery("select * from m_customer o where o.name='Tom'");

List<Object[]> list = query.list();

if(list!=null && list.size()>0){

for(Object[] o:list){

System.out.println(o[0].toString()+"   "+o[1].toString()+"     "+o[2].toString());

}

}

此时返回Object数组或者是返回一个Object对象

* 如果条件查询只有1个字段的时候,此时是一个Object对象

* 如果条件查询有多个字段的时候,此时是一个Object数组

2)参数查询

方式一:

Query query = s.createSQLQuery("select * from m_customer o where o.name=:customer");

query.setParameter("customer", "Tom");

List<Object[]> list =query.list();

if(list!=null && list.size()>0){

for(Object[] o:list){

System.out.println(o[0].toString()+"   "+o[1].toString()+"     "+o[2].toString());

}

}

方式二:

Query query = s.createSQLQuery("select * from m_customer o where o.name=?");

query.setParameter(0, "Tom");//0表示?号第1个位置

List<Object[]> list = query.list();

if(list!=null && list.size()>0){

for(Object[] o:list){

System.out.println(o[0].toString()+"   "+o[1].toString()+"     "+o[2].toString());

}

}

 

3)封装实体

//封装对象实体

SQLQuery query = s.createSQLQuery("select {o.*} from m_customer o where o.name=?");

query.setParameter(0, "Tom");//0表示?号第1个位置

query.addEntity("o", Customer.class);

List<Customer> list = query.list();

if(list!=null && list.size()>0){

for(Customer c:list){

System.out.println(c.getName()+"   "+c.getAge());

}

}


0 0