文档章节

Hibernate中通过annotaion配置SQLServer的存储过程

pior
 pior
发布于 2014/09/05 13:49
字数 312
阅读 22
收藏 0

环境:hibernate 3.3.1 +spring 2.5.6+ sql server 2005

 

首先,上spring的hibernate配置

 

<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
		p:dataSource-ref="dataSource">
		<property name="hibernateProperties">
			<props>
				 
				<!-- SQLServer DIALECT -->
				<prop key="hibernate.dialect">
					org.hibernate.dialect.SQLServerDialect
             </prop>

				 
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>

		<property name="annotatedClasses">
			<list>
				<value>
					com.bean.Contact
               </value>
				
			</list>
		</property>
 


	</bean>

 

这里没有使用自动搜索·通过下面代码配置实例化类·

<property name="annotatedClasses">
			<list>
				<value>
					com.bean.Contact
               </value>
				
			</list>
</property>

 下一步 Contact类代码:

import javax.persistence.Entity;
import javax.persistence.EntityResult;
import javax.persistence.NamedNativeQuery;
import javax.persistence.SqlResultSetMapping;


@Entity
@SqlResultSetMapping(name = "ContactMapping", entities = @EntityResult(entityClass = Contact.class))
@NamedNativeQuery(name = "ContactQuery", query = "{call GetContact(?,?)}", resultSetMapping = "ContactMapping")
public class Contact{

...........

}

 其中:

 

     1 ContactQuery是可执行的查询名字·以后要在getNamedQuery()方法中用到·

     2 ContactMapping是执行结果集和类的对应表,这里结果集的列名和类的属性名一致·所以就隐含设置了·

     3 {call GetContact(?,?)} ·GetContact是存储过程的名字·(?,?)是指有两个参数

     4 注意上面的引用包·用hibernate的包会出错·

 

  再来看看DAO类的代码:

 

Query query = getSession().getNamedQuery("ContactQuery");
query.setString(0, ID);
query.setString(1, date);
List<Contact> ContactList= query.list();

 其中:

 

1 getSession().getNamedQuery("ContactQuery")调用的就是在annotation里定义的名子

2 通过query.setString()设置存储过程的参数

 

PS:在网上查资料时看到有说这存储过程是必须要有返回结果集的·

本文转载自:http://pior.iteye.com/blog/965464

pior
粉丝 27
博文 151
码字总数 22496
作品 0
济南
高级程序员
私信 提问
C#工具:Ado.Net SqlServer数据库 MySql数据库

数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库. SqlServer调用数据库 using System.Collections.Generic;using System.Linq;using System.Text;using Sys...

刘元蛟
04/01
0
0
FreeBSD下执行SQL Server2005存储过程解决方案

FreeBSD下执行SQL Server2005存储过程解决方案(Warning: mssql_execute(): ...) FreeBSD下使用SQL Server2005(2008)需要使用FreeTDS。 安装FreeTSD后,使用PHP语言进行测试。在使用mssql_e...

雷xiao雨
2014/03/01
49
0
SQLSERVER性能监控级别步骤

原文:SQLSERVER性能监控级别步骤 SQLSERVER性能监控级别步骤 下面先用一幅图描述一下有哪些步骤和顺序 1、识别瓶颈 识别瓶颈的原因包括多个方面,例如,资源不足,需要添加或升级硬件; 工作...

杰克.陈
2018/08/17
0
0
小觑数据库(SqlServer)查询语句执行过程

近年来,越来越多的NoSql产品不断的以技术革命的者的身份跳出来:"你看哥是多么的快,你们关型型数据库真是战五渣阿"。是的,高性能的场景下NoSql真的很出彩。而我们关系型数据库只能在墙角哭...

Yunanw
2014/04/14
541
4
jmeter(八)-JDBC请求(sqlserver)

做JDBC请求,首先要了解这个JDBC对象是什么,然后寻找响应的数据库连接URL和数据库驱动。 数据库URL:jdbc:sqlserver://200.99.197.190:1433;databaseName=ebank 数据库驱动:com.microsoft...

劲风online
2015/01/08
327
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部