首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Hibernate实施存储过程报错:找不到存储过程 'dbo.DbInfo'

2013-09-06 
Hibernate执行存储过程报错:找不到存储过程 ⟛o.DbInfo'。sqlserver是这样调用的:-------------

Hibernate执行存储过程报错:找不到存储过程 'dbo.DbInfo'。
sqlserver是这样调用的:
------------------------
go 
exec dbo.DbInfo  8000,30000,''
------------------------
可以查询出数据集

java中action里的代码如下:


String procName="{Call dbo.DbInfo(?,?,?) }"; 
SQLQuery sqlquery = sess.createSQLQuery(procName);
sqlquery.setInteger(0, 8000);
sqlquery.setInteger(1, 30000);
sqlquery.setString(2, "");
List<?> list = null;
list = sqlquery.list();

我用hibernate里的Session查询了一个sql语句是没问题的。
-----------------各种搜都没有结果      ============== 存储 Hibernate java
[解决办法]
改为String procName="{Call DbInfo(?,?,?)}";看看
[解决办法]
你那肯定不行了,createSQLQuery是执行SQL语句的。

应该这样:

CallableStatement call = conn.prepareCall("{Call getLogPageData(?,?)}");

call.setString(1, tempSql);
call.setString(2, listsql);

ResultSet rst = call.executeQuery();
[解决办法]
网上搜了个,你不用hiberante 你执行看看有没有这个存储过程 ?
public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fish";
        String user = "bm";
        String pwd = "bm";
        Connection conn = null;
        CallableStatement proc = null;//执行sql存储过程的接口
        ResultSet rs = null;

//        调用存储过程p_1:从Cell表中取出数据
        try{


            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            conn = DriverManager.getConnection(url,user,pwd);
            proc = conn.prepareCall("{? = call p_1 ()}");
            proc.registerOutParameter(1, Types.REAL);
            rs = proc.executeQuery();//取得结果集
            while(rs.next()){
                System.out.println(rs.getString("name"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(rs!=null) rs.close();
            if(proc!=null)proc.close();
            if(conn!=null)conn.close();
        }
    }

热点排行