一、对象封装:Java代码:
Configuration config =newConfiguration().configure();
SessionFactory sf= config.buildSessionFactory();
Session session = sf.openSession();
Transaction ts = session.beginTransaction();
Query query = session.createSQLQuery("select * from Tree t where pid in (select id from Tree) ") .addEntity(Tree.class);//返回对象
List list = query.list(); (Tree)list.get(i);
此时在遍历list时就可以(Tree)list.get(i);将每一行的内容变换为一个对象了。
二、属性值,Map封装
Java代码:
Query query = session.createSQLQuery("select id,name from Tree t where pid in (select id from Tree) ").setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);//返回一个map,KEY:为DB中名称一致(大小写一致)
//遍历list时就可以
Map map = (Map)list.get(i);
map.get("id");
map.get("name");//来取值。
按你的SQL语句select后的字段名来作为map的Key,但这个key必须与数据库中的字段名一模一样
三、函数方面设值
Java代码
Query query = session.createSQLQuery("select sum(id) SUMID from Tree t where pid in (select id from Tree).addScalar("SUMID",Hibernate.INTEGER).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);//// 转换类型,按DB中的type转;返回一个map,KEY:为DB中名称一致(大小写一致)
Map map = (Map)list.get(i);
map.get("SUMID");
直接就map.get("SUMID")可以取值了
相关推荐
在Hibernate中,调用存储过程通常通过Session对象的createNativeQuery()方法实现,这个方法用于创建原生SQL查询,可以方便地调用数据库的自定义SQL或者存储过程。以下是一个简单的示例,展示了如何调用一个不带参数...
在Hibernate中执行原生SQL查询时,可以通过`addScalar`方法指定返回值的类型,从而改变Hibernate对char类型字段的处理方式。具体操作如下: ```java Session session = this.getSession(); SQLQuery query = ...
Hibernate提供两种调用存储过程的方法:使用`Session.createSQLQuery()`和使用`StoredProcedureQuery`。 - **使用`Session.createSQLQuery()`** 这种方法适用于简单的存储过程调用。你可以构建一个SQL查询字符串...
总结,调用Hibernate的存储过程涉及配置、创建Session、编写SQL查询、设置参数、执行存储过程和处理结果等多个步骤。通过学习和实践这些步骤,开发者可以更高效地在Java应用中利用数据库的存储过程功能。在实际项目...
- 使用`Session.createSQLQuery()`方法创建SQLQuery对象,然后通过`addScalar()`指定返回值类型,`executeUpdate()`或`list()`执行存储过程。 3. **调用存储过程的方法** - **简单调用**:对于无参数或只接收输入...
总结,使用Hibernate调用存储过程,无论是不带参数还是带参数返回值的,都需要创建SQL查询或`CallableStatement`,设置参数,执行存储过程,并处理返回结果。在处理过程中,需要注意事务管理,确保数据的一致性。...
Hibernate3通过Query对象的createSQLQuery方法提供对存储过程的调用支持。它允许我们编写原生的SQL语句,包括调用存储过程,然后映射结果到Java对象。 三、具体步骤 1. **创建SQL查询** 使用Session的...
Hibernate 3.2及以上版本开始支持存储过程的调用,主要通过Session的createSQLQuery方法。 ```java SessionFactory sessionFactory = ...; // 获取SessionFactory Session session = sessionFactory.openSession();...
1. **使用XML映射文件**:在Hibernate中,可以通过XML配置文件来定义SQL查询,包括调用存储过程。在`hibernate.cfg.xml`或对应的实体类映射文件中添加以下内容: ```xml {call proc()} ``` 然后,可以...
在Hibernate中调用带有IN参数的存储过程通常有两种方法:一种是使用`createSQLQuery`方法,另一种则是直接使用JDBC API。 1. **使用`createSQLQuery`方法**: - 创建一个`SQLQuery`对象,该对象允许执行原生SQL...
1. 使用`SQLQuery`对象:通过Session的`createSQLQuery`方法创建`SQLQuery`对象,然后设置存储过程的SQL语句(包括IN、OUT或INOUT参数),并调用`executeUpdate`或`list`方法执行。 ```java Session session = ...
在上述代码中,我们首先定义了一个SQL字符串,然后使用`session.createSQLQuery(sql)`创建一个NSQL查询对象,并通过`query.setString()`设置参数值。最后,调用`query.executeUpdate()`执行插入操作,并根据返回值...
在 Hibernate 中,使用 SQLQuery 可以执行 Native SQL 查询,控制查询的执行是通过 SQLQuery 接口进行的,通过执行 Session.createSQLQuery() 获取这个接口。下面将详细介绍如何使用这个 API 进行查询。 标量查询...
在Hibernate配置文件中,你可以定义一个`sql-query`或`named-native-query`,并在代码中通过Session的createSQLQuery或createNativeQuery方法来执行。 总结来说,调用MySQL的存储过程和函数主要步骤包括: 1. 创建`...
除了使用SQL查询,NHibernate还提供了HQL(Hibernate Query Language)和Criteria API来调用存储过程,但这通常需要自定义映射和实现一些额外的逻辑。这通常比直接使用SQL查询更复杂,但在某些情况下可能是更合适的...
- 使用`Session.createSQLQuery()`或`Session.createQuery()`构建HQL(Hibernate Query Language)或SQL查询,然后调用`addBatch()`添加待执行的参数,最后调用`executeUpdate()`执行批量操作。 6. **通过 ...
Hibernate作为Java持久层框架,可通过`Session.createSQLQuery()`或`StoredProcedureQuery`来调用存储过程。 - 无返回值的存储过程:直接执行不获取结果。 - 有返回值的存储过程:使用`registerReturnParameter()...
通过配置Hibernate映射文件(hbm.xml)或使用`Session.createSQLQuery()`方法来调用。 5. **Java 调用 Oracle 存储过程** Java中调用存储过程通常使用JDBC的CallableStatement对象,例如: ```java ...
如果存储过程有多个输出参数或返回值,可以使用`NHibernateUtil`类的`GetType`方法指定输出参数的类型,并在调用后通过`GetResult`或`GetScalar`方法获取结果。 总结,调用存储过程在NHibernate中是一个实用的功能...