问题如上,现在一个项目需要调用数据库中的函数,返回结果,不知道nutz有没有这方面的类或者接口
@wendal nutzDao 对数据库自定义函数要怎么调用呢
比如我写了一个生成md5的函数 fn_m_md5,需要传一个字符串参数用于md5加密,返回一个加密后的md5字符串,
目前我看func,和func2都是支持对某个表的字段的操作,请问上述的场景要怎么做?
自定义sql不就好了 @qq_6d1ec279
来自炫酷的 NutzCN
@wendal 自定义sql也不行
Sql sql = Sqls.create("{?=call fn_m_md5(@str)}");
String ret = null;
sql.params().set("str", "hi");
super.dao().execute(sql);
return sql.getObject(String.class);
以上写法报以下错误;
Nutz SQL Error: '{'hi'=call fn_m_md5()}'
PreparedStatement:
'{?=call fn_m_md5(?)}'
CaseMessage=索引中丢失 IN 或 OUT 参数:: 2
Sql sql = Sqls.create("{@ret=call fn_m_md5(@str)}");
String ret = null;
sql.params().set("str", "hi");
sql.params().set("ret", ret);
super.dao().execute(sql);
System.out.println(ret);
return sql.getObject(String.class);
这种写法也取不到值;
21:13:50.416 [ServerMain-Provider] INFO o.n.dao.impl.sql.run.NutDaoExecutor - Can't identify SQL type : {NULL=call fn_m_md5('hi')}
21:13:50.448 [ServerMain-Provider] DEBUG o.n.dao.impl.sql.run.NutDaoExecutor - {NULL=call fn_m_md5('hi')}
21:13:50.588 [ServerMain-Provider] DEBUG o.s.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
null