Jav*_*ons 3 java oracle function return-value
如何从java调用oracle函数?
我有一个oracle函数aaa.fucntion(number,date);,这个方法返回true或false。如何从java调用它并获取返回值?
我在用 Hibernate
这是我试过的,
Session session = null;
String associateHistorySQL="";
try {
session = HibernateUtil.currentSession();
associateHistorySQL = "SELECT aa.myFunction(:aorId,:givenDate) from dual";
Query associateHistoryQuery = session.createQuery(associateHistorySQL);
associateHistoryQuery.setParameter("aorId", associateOfficeRecordId);
associateHistoryQuery.setParameter("givenDate", date);
List associateHistoryList = associateHistoryQuery.list();
if (associateHistoryList != null && associateHistoryList.size() > 0 && new Integer(associateHistoryQuery.uniqueResult().toString()) > 0)
return true;
else
return false;
} finally {
HibernateUtil.cleanUpHibernateFromDao(false);
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的例外 unexpected token: aa: line 1:1: unexpected token: aa
谢谢
实际上有多种方法可以做到这一点。但其中最简单的是触发查询。这是如何做到的。
String sql="select myFunction('"+number+"','"+date"') from dual";
statement.execute(sql);
Run Code Online (Sandbox Code Playgroud)
如果您使用 JDBC,请设置输入和输出参数。
如果您使用的是休眠状态,请使用类似这样的命名查询: YourMapping.hbm.xml
<sql-query name="my_function" callable="true">
<return alias="demo" class="net.bean.Demo">
<return-property name="id" column="id"/>
<return-property name="fname" column="fname"/>
<return-property name="lname" column="lname"/>
</return>
{?=call demoFunc(:param1,:param2)}
</sql-query>
Run Code Online (Sandbox Code Playgroud)
现在这将为函数创建一个命名查询
接下来要做的就是使用以下代码调用它
Query query=session.getNamedQuery("my_function");
query.setParameter("parma1",date);
query.setParameter("parma2",number);
query.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
请注意,在 hbm.xml 文件中,如果函数返回适当的值,则返回类名称和属性仅适用于您已映射返回值的情况。
| 归档时间: |
|
| 查看次数: |
15094 次 |
| 最近记录: |