文档章节

hibernate 4 执行存储过程

fengzhi714
 fengzhi714
发布于 2016/09/30 16:35
字数 170
阅读 36
收藏 1
点赞 0
评论 0

 通过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
博文 45
码字总数 15104
作品 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
spring 执行存储过程

手上有个项目(spring+hibernate)需要调用存储过程,以前没有接触过这个。 通过网络了解大致有两种解决方法。 1 :利用HibernateTemplate 获取到 session 再得到 Connection 执行存储过程。 ...

le_kj
2012/12/19
1K
2
MySQL 使用 JPA + Hibernate 的 9 个高性能技巧

本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 介绍 尽管有SQL标准,但每个关系数据库终将是唯一的,因此你需要调整数据访问层,以便充分利用在使...

码农网
2017/10/27
0
0
Hibernate原生SQL查询

Hibernate除了支持HQL查询外,还支持原生SQL查询。 一、标量查询 它们都将返回一个Object数组组成的List,数组每个元素都是person_inf表的一个字段值。Hibernate会使用ResultSetMetadata来判...

ForingY
2016/12/29
5
0
JDBC封装包--JdbcQuery

JdbcQuery是一个对JDBC操作进行封装,使得在JAVA中执行复杂的SQL语句和存储过程变得像hibernate一样的简单,并能方便的将结果集以List、Map、Array的形式返回。 调用存储过程示例: String st...

奋斗2018
2014/04/23
1K
0
Hibernate学习4--Hibernte的映射关系(二)

上一节我们主要研究下了Hibernate中的一一映射和多对一映射,这节我们看下Hibernate中的其他几种映射,包括一对多映射,多对多映射,复合主键映射及继承映射。 第一种是一对多映射,“一对多...

王小明123
2014/04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【JVM】JSTATD结合Java VisualVM进行远程监控JVM运行情况(二)

内存泄露指的是程序中动态分配内存给一些临时对象,但是对象不会被GC(java垃圾回收机制gabage collection)所回收,它始终占用内存。即被分配的对象很大但已无用; 内存溢出指的是程序运行过...

大白来袭
6分钟前
0
0
聊聊ribbon的超时时间设置

序 本文主要研究一下ribbon的超时时间设置 配置 实例 ribbon: ReadTimeout: 10000 ConnectTimeout: 10000 MaxAutoRetries: 0 MaxAutoRetriesNextServer: 1 eureka: enabled: ......

go4it
14分钟前
0
0
一行代码结果叹为观止,能做到这么极致的也只有python了

Python 这门语言非常的有趣,不仅可以做高大上的人工智能、大数据、机器学习。还可以用来做 Web、爬虫。还有其它很多的应用。今天我就给大家展示下一行 Python 代码都可以做些什么。 一行打印...

猫咪编程
18分钟前
1
0
KingShard使用

对于kingshard的功能,在git中可以看到明确的功能说明 主要功能: 1. 基础功能 支持SQL读写分离。 支持透明的MySQL连接池,不必每次新建连接。 支持平滑上线DB或下线DB,前端应用无感知。 支...

mickelfeng
20分钟前
0
0
Linux 下 查找某个字符串

如果你想在当前项目下 查找 "test" 这个字符串,可以这样: grep -rn "test" * * : 表示当前目录所有文件,也可以是某个文件名-r 是递归查找-n 是显示行号-R ...

nsns
20分钟前
0
0
数据结构 之 B树与红黑树

https://blog.csdn.net/v_july_v/article/details/6530142 http://www.cnblogs.com/CarpenterLee/p/5503882.html...

晨猫
20分钟前
0
0
Linux查看服务器总内存和总硬盘大小

一、linux CPU大小; 其实应该通过Physical Processor ID来区分单核和双核。而Physical Processor ID可以从cpuinfo或者dmesg中找到. flags 如果有 ht 说明支持超线程技术 判断物理CPU的个数可...

浮躁的码农
20分钟前
0
0
Postfix命令行说明

Postfix tips and Troubleshooting Commands Here's a list of stuff I user everyday and other email admins will also be using, Let me know if I missed anything List/Print current m......

mingle
26分钟前
0
0
是时候使用Helm了:Helm, Kubernetes的包管理工具

目前我们的一个产品共有4套环境:dev环境、test环境、staging环境、production环境。 其中dev, test, staging环境在一个Kubernetes集群上以不同namespace部署,production环境部署在另一个Kub...

xiaomin0322
34分钟前
0
0
常见的redis的序列化方式

概括 一般redis的序列化方式主要有:字符串序列化、json序列化、xml序列化、jdk序列化,具体可查阅org.springframework.data.redis.serializer.RedisSerializer 的实现类,其中对于json序列化...

菜蚜
48分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部