文档章节

hibernate 4 执行存储过程

fengzhi714
 fengzhi714
发布于 2016/09/30 16:35
字数 170
阅读 39
收藏 1

 通过hibernate4 中doReturningWork 方法执行存储过程。示例代码中session factory 通过项目中获取,这里仅做示例用。

读取数据通过原生jdbc方式读取,不记得jdbc的可以去看看jdbc。

public void testCallProcedure() {

		// 测试数据
		int deptId = 1;
		SessionFactory sessionFactory = null;

		String sql = "{call pro_getDeptUserAndChildDeptUserListByDeptId(?)}";
		Session session = sessionFactory.getCurrentSession();

		// 通过 hibernate 4 doReturningWork 方法执行存储过程
		session.doReturningWork(new ReturningWork() {
			@Override
			public Object execute(Connection connection) throws SQLException {
				CallableStatement cs = connection.prepareCall(sql);
				cs.setInt(1, deptId);
				ResultSet rs = cs.executeQuery();

				List<Map<String, Object>> userList = new ArrayList<Map<String, Object>>();

				// 读取数据
				while (rs.next()) {
					Map<String, Object> map = new HashMap<String, Object>();

					map.put("userId", rs.getString("user_id"));

					userList.add(map);
				}

				return userList;
			}
		});

	}

 

© 著作权归作者所有

共有 人打赏支持
fengzhi714
粉丝 5
博文 46
码字总数 15361
作品 0
佛山
后端工程师
Hibernate调用存储过程示例(有参数,返回结果集)

1、存储过程 2、数据库客户端执行存储过程如下: 执行结果如下: 3、java代码通过hibernate调用存储过程 打印结果: FreezeMon:2017-09 meterid:0351-09768 4、hibernate取出存储过程的输出参...

ytangdigl
2017/10/26
0
0
hibernate sql 查询

Hibernate 支持使用原生的SQL查询,使用原生SQL查询可以利用某些数据库特性,原生SQL查询也支持将SQL语句放在配置文件中配置,从而提高程序的解耦,命名SQL查询还可以用于调用存储过程。 SQL查...

DaDa-da
04/23
0
0
hibernate批量修改,批量删除

在Hibernate应用中如何处理批量更新和批量删除? 批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务中删除大批量数据。以下程序直接通过Hibernate API批量更新CUSTOMERS表中年...

Kerry_Han
2013/08/30
0
0
Hibernate SQL查询 addScalar()或addEntity()

Hibernate除了支持HQL查询外,还支持原生SQL查询。 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。该接口是Query接口的子接口。 执行S...

小和尚敲代码
2016/01/29
66
0
使用SQLQuery 在Hibernate中使用sql语句

session.createSQLQuery.转载 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。下面来描述如何使用这个API进行查询。 最基本的SQL查询就是...

无间道
2013/03/13
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部