spring hibernatee+db2的例子谁有?

关于hibernate和db2的一些问题
&1.使用hibernate存取blob,可参考使用下面url连接db2: jdbc:db2://10.2.5.130:50000/testDB:driverType=4;fullyMaterializeLobData=fullyMaterializeInputStreams=progressiveStreaming=2;progresssiveLocators=2; 2.错误:SQLCODE:&& -401,&& SQLSTATE:&& 42818, && &操作符错误,编程的时候编码不严谨,如在varchar字段使用操作符号 status=0。 3.SQL0443N SQLSTATE=38553 错误: && &从命令行,输入:db2cmd && &然后输入:db2 && &&& &&& TERMINATE &&&&&& &&& &&& CONNECT TO &dbname& &&&&&&&&&&&&&&&&&& BIND &path&/db2schema.bnd BLOCKING ALL GRANT PUBLIC sqlerror continue &&&&&&&&&&&&&&&&&& TERMINATE & 4.SQLCODE=-302, SQLSTATE=22001 && &常见报错信息如下:
&& &1)com.ibm.db2.jcc.b.jm: DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null && &2)ERROR DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704,
&& &【分析】根据报错信息看,问题的 产生根源为在支撑的关系型数据库中一些关键字段的字段长度设计太小,插入到字段的数值长度超出了字段的设计大小,从而引起了插入信息的中途截断。
&& &【解决思路】调整报错数据表中的相关字段大小到需求范围,经过测试这里的扩展幅度为新大小为字段初始大小的4倍是合适的。因为DB2数据库的默认表空间页面大小为4K,4K的页面对应的同一数据表的所有字段和长度不能超过4051B,所以扩展相应字段的大小受到了边界的限制。而DB2数据库一旦在数据表创建后,其页面大小是不可更改的,亦即默认4K的页面大小不能再修改为32K。解决思路如下:欲排除错误,必须增加报错字段的长度,欲增大字段长度必须拓展表空间的页面大小,欲调整表空间页面大小必须使得所建各表的缓冲池采用自己事先定义好的页面大小为32K的缓冲池。
&& &【步骤】
&& &方法1,在生成数据表之前,先替换掉系统默认的页面大小为4K的表空间,也就是USERSPACE1。考虑到DB2的自身限制,采用如下方法,删除系统原有的表空间USERSPACE1,然后新建同名的表空间USERSPACE1,为了使该表空间的页面大小为32K,此时一定要注意,缓冲池要选择自己事先建立的页面大小为32K的缓冲池(如LARGE_POOL)。在做完上述操作后,再设置系统的各项数据库连接参数,生成所需的各项数据表。此方法可以排除潜在字段扩展问题,操作简单,建议使用。
&& &方法2,在设置好系统的各项连接参数后,系统会在DB2中生成所需的各项数据表。那么找出产生错误的数据表后,生成创建该表的SQL脚本,然后删除该数据表,编辑该SQL脚本,在最后一行中,用新创建的页面大小为32K的表空间(如EKP_SPACE)替换系统默认的页面大小为4K的表空间(如USERSPACE1)后,重新生成同名数据表即可。缺点:需要找出所有需要扩充字段的数据表进行替换。工作量比较大,稍有遗漏就会有潜在的字段扩展问题产生。
& 5.非常奇怪的问题。(碰到相同的问题,下面引用java自由人的描述,来自:/diary/3864) && &请先看下面这段代码,这段代码的本意是从标签表中读取引用最多的前几个标签,这段代码在DB2数据库下执行也没问题,但是出来的数据不是标签名,而是一些顺序的数字,而其他数据库完全正确。 && &public static List listHotTags(int count){ && &&&&&&& Session ssn = getSession(); && &&&&&&& String sql = &SELECT tag_name,COUNT(*) FROM dlog_tag GROUP BY tag_name ORDER BY 2 DESC&; && &&&&&&& SQLQuery query = ssn.createSQLQuery(sql); && &&&&&&& query.setMaxResults(count); && &&&&&&& List tags = new ArrayList(); && &&&&&&& List results = query.list(); && &&&&&&& for(int i=0;results!=null && i && &&& &&& tags.add(((Object[])results.get(i))[0]); && &&&&&&& } && &&&&&&& && &}
&& &非常的奇怪,打开Hibernate显示SQL语句的开关后发现Hibernate生成的SQL语句是
&& &select * from ( select rownumber() over(ORDER BY 2 DESC) as rownumber_, tag_name,COUNT(*)& FROM BLOG.dlog_tag GROUP BY tag_name ORDER BY 2 DESC ) as temp_ where rownumber_ &= ?
&& &也就是说结果集中变成了三个列,而第一个是行号,第二个才是我们想要的标签名。所以上面的代码就要改为 tags.add(((Object[])results.get(i))[1]); 才行!
&& &我觉得关键的问题还是Hibernate对setMaxResults方法的处理上!
&& &那这样程序就不具备移植性了:( 怎么办呢?
&& &在网上搜索相关问题发现了这个
&& &http://forum.hibernate.org/viewtopic.php?p=2292876
&& &不过这个问题提了很久了,而且我用的是Hibernate 3.1.3 怎么还是同样的问题出现呢?
jdbc:db2://10.2.5.130:50000/testDB:driverType=4;fullyMaterializeLobData=fullyMaterializeInputStreams=具体解释下呗。。。
本分类共有文章27篇,更多信息详见
& 2012 - 2016 &
&All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";
/*爱悠闲底部960*75*/
var cpro_id = "u1888128";CopyRight & , , All Rights Reserved. 版权所有
网页代码()主要提供网页特效代码、网站设计素材、网页制作教程等资源。包括网页平面设计布局、动态网站开发、字体下载、flash素材、网页模板、背景图标按钮素材、中文英文设计字体下载及在线手册和站长工具查询等资源。经过hibernate连接db2数据库利用get方法返回数据时出错!
&来源:读书人网&【读书人网():综合教育门户网站】
通过hibernate连接db2数据库利用get方法返回数据时出错!!!代码走到此处的时候:PersonReg personReg
通过hibernate连接db2利用get方法返回数据时出错!!!&&&&代码走到此处的时候:PersonReg&personReg&=&(PersonReg)dao.get(PersonReg.class,&list.get(0).toString());报错,求高助!!!!!&&&&错误提示:如下--------------------------------javax.xml.ws.soap.SOAPFaultException:&Hibernate&operation:&could&not&load&an&entity:&[ie.cphh.services.model.PersonReg#1];&uncategorized&SQLException&for&SQL&[select&personreg0_.PERSONREG_ID&as&PERSONREG1_15_0_,&personreg0_.HR_ID&as&HR2_15_0_,&personreg0_.NAME&as&NAME15_0_,&personreg0_.MEDICARE_CD&as&MEDICARE4_15_0_,&personreg0_.MEDICAL_INSURANCE_NO&as&MEDICAL5_15_0_,&personreg0_.ID_NO_CD&as&ID6_15_0_,&personreg0_.ID_NO&as&ID7_15_0_,&personreg0_.ID_NO_START_DATE&as&ID8_15_0_,&personreg0_.ID_NO_CANCEL_DATE&as&ID9_15_0_,&personreg0_.ID_PROVIDING_ORG_CODE&as&ID10_15_0_,&personreg0_.BIRTH_DATE&as&BIRTH11_15_0_,&personreg0_.GENDER_CD&as&GENDER12_15_0_,&personreg0_.NATIONALITY_CD&as&NATIONA13_15_0_,&personreg0_.NATION_CD&as&NATION14_15_0_,&personreg0_.MARITAL_ST_CD&as&MARITAL15_15_0_,&personreg0_.WORK_DATE&as&WORK16_15_0_,&personreg0_.OCCU_TYPE_CD&as&OCCU17_15_0_,&personreg0_.ED_BG_CD&as&ED18_15_0_,&personreg0_.AR_CD&as&AR19_15_0_,&personreg0_.AD_CD&as&AD20_15_0_,&personreg0_.PROVINCE_NAME&as&PROVINCE21_15_0_,&personreg0_.CITY_NAME&as&CITY22_15_0_,&personreg0_.AREA_NAME&as&AREA23_15_0_,&personreg0_.STREET_ID&as&STREET24_15_0_,&personreg0_.VILLAGE_NAME&as&VILLAGE25_15_0_,&personreg0_.HOUSE_NO&as&HOUSE26_15_0_,&personreg0_.POST_CD&as&POST27_15_0_,&personreg0_.TEL_TYPE_CD&as&TEL28_15_0_,&personreg0_.TEL_NO&as&TEL29_15_0_,&personreg0_.EMAIL_AD&as&EMAIL30_15_0_,&personreg0_.LINKMAN_NAME&as&LINKMAN31_15_0_,&personreg0_.linkman_rel_cd&as&linkman32_15_0_,&personreg0_.lm_Id_no_cd&as&lm33_15_0_,&personreg0_.lm_Id_no&as&lm34_15_0_,&personreg0_.Register_date&as&Register35_15_0_,&personreg0_.Recorder_name&as&Recorder36_15_0_,&personreg0_.REGISTER_PERSON_CODE&as&REGISTER37_15_0_,&personreg0_.REGISTER_ORG_CODE&as&REGISTER38_15_0_,&personreg0_.SEND_TIME&as&SEND39_15_0_,&personreg0_.SEND_ORG_CODE&as&SEND40_15_0_,&personreg0_.SEND_SYSTEM&as&SEND41_15_0_,&personreg0_.CREATETIME&as&CREATETIME15_0_,&personreg0_.LastUpTime&as&LastUpTime15_0_,&personreg0_.STATE&as&STATE15_0_&from&PERSONREG&personreg0_&where&personreg0_.PERSONREG_ID=?];&SQL&state&[null];&error&code&[-4220];&[jcc][][3.62.56]&数据转换无效:参数实例&101&对于所请求的转换为&java.sql.Timestamp&的转换无效。&ERRORCODE=-4220,&SQLSTATE=&nested&exception&is&com.ibm.db2.jcc.am.SqlException:&[jcc][][3.62.56]&数据转换无效:参数实例&101&对于所请求的转换为&java.sql.Timestamp&的转换无效。&ERRORCODE=-4220,&SQLSTATE=nullat&org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)at&$Proxy39.verifyPersonHH(Unknown&Source)at&ie.cphh.services.TestClentVerifyPerson.main(TestClentVerifyPerson.java:27)Caused&by:&org.apache.cxf.binding.soap.SoapFault:&Hibernate&operation:&could&not&load&an&entity:&[ie.cphh.services.model.PersonReg#1];&uncategorized&SQLException&for&SQL&[select&personreg0_.PERSONREG_ID&as&PERSONREG1_15_0_,&personreg0_.HR_ID&as&HR2_15_0_,&personreg0_.NAME&as&NAME15_0_,&personreg0_.MEDICARE_CD&as&MEDICARE4_15_0_,&personreg0_.MEDICAL_INSURANCE_NO&as&MEDICAL5_15_0_,&personreg0_.ID_NO_CD&as&ID6_15_0_,&personreg0_.ID_NO&as&ID7_15_0_,&personreg0_.ID_NO_START_DATE&as&ID8_15_0_,&personreg0_.ID_NO_CANCEL_DATE&as&ID9_15_0_,&personreg0_.ID_PROVIDING_ORG_CODE&as&ID10_15_0_,&personreg0_.BIRTH_DATE&as&BIRTH11_15_0_,&personreg0_.GENDER_CD&as&GENDER12_15_0_,&personreg0_.NATIONALITY_CD&as&NATIONA13_15_0_,&personreg0_.NATION_CD&as&NATION14_15_0_,&personreg0_.MARITAL_ST_CD&as&MARITAL15_15_0_,&personreg0_.WORK_DATE&as&WORK16_15_0_,&personreg0_.OCCU_TYPE_CD&as&OCCU17_15_0_,&personreg0_.ED_BG_CD&as&ED18_15_0_,&personreg0_.AR_CD&as&AR19_15_0_,&personreg0_.AD_CD&as&AD20_15_0_,&personreg0_.PROVINCE_NAME&as&PROVINCE21_15_0_,&personreg0_.CITY_NAME&as&CITY22_15_0_,&personreg0_.AREA_NAME&as&AREA23_15_0_,&personreg0_.STREET_ID&as&STREET24_15_0_,&personreg0_.VILLAGE_NAME&as&VILLAGE25_15_0_,&personreg0_.HOUSE_NO&as&HOUSE26_15_0_,&personreg0_.POST_CD&as&POST27_15_0_,&personreg0_.TEL_TYPE_CD&as&TEL28_15_0_,&personreg0_.TEL_NO&as&TEL29_15_0_,&personreg0_.EMAIL_AD&as&EMAIL30_15_0_,&personreg0_.LINKMAN_NAME&as&LINKMAN31_15_0_,&personreg0_.linkman_rel_cd&as&linkman32_15_0_,&personreg0_.lm_Id_no_cd&as&lm33_15_0_,&personreg0_.lm_Id_no&as&lm34_15_0_,&personreg0_.Register_date&as&Register35_15_0_,&personreg0_.Recorder_name&as&Recorder36_15_0_,&personreg0_.REGISTER_PERSON_CODE&as&REGISTER37_15_0_,&personreg0_.REGISTER_ORG_CODE&as&REGISTER38_15_0_,&personreg0_.SEND_TIME&as&SEND39_15_0_,&personreg0_.SEND_ORG_CODE&as&SEND40_15_0_,&personreg0_.SEND_SYSTEM&as&SEND41_15_0_,&personreg0_.CREATETIME&as&CREATETIME15_0_,&personreg0_.LastUpTime&as&LastUpTime15_0_,&personreg0_.STATE&as&STATE15_0_&from&PERSONREG&personreg0_&where&personreg0_.PERSONREG_ID=?];&SQL&state&[null];&error&code&[-4220];&[jcc][][3.62.56]&数据转换无效:参数实例&101&对于所请求的转换为&java.sql.Timestamp&的转换无效。&ERRORCODE=-4220,&SQLSTATE=&nested&exception&is&com.ibm.db2.jcc.am.SqlException:&[jcc][][3.62.56]&数据转换无效:参数实例&101&对于所请求的转换为&java.sql.Timestamp&的转换无效。&ERRORCODE=-4220,&SQLSTATE=null
at&org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75)at&org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46)at&org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)at&org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)at&org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:99)at&org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)at&org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)at&org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)at&org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:700)at&org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2261)at&org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2134)at&org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1988)at&org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)at&org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)at&org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)at&org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)at&org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:487)at&org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)at&org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)at&org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)at&org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)...&2&more[解决办法]数据类型都是什么数据转换无效:参数实例&101&对于所请求的转换为&java.sql.Timestamp&的转换无效。&ERRORCODE=-4220,&SQLSTATE=null[解决办法]数据类型转换不了&java.sql。Timestamp&类型。你看看是什么类型的。时间的话,用varchar类型吧。随笔分类 - SQL/Oracle/DB2/SQL Server/MySql
摘要: 说来惭愧,工作差不多4年了,直到前些日子被DBA找上门让我优化一个CPU占用很高的复杂SQL语句时,我才突然意识到了参数化查询的重要性。相信有很多开发者和我一样对于参数化查询认识比较模糊,没有引起足够的重视错误认识1.不需要防止sql注入的地方无需参数化 参数化查询就是为了防止SQL注入用的,其它还有什么用途不知道、也不关心,原则上是能不用参数就不用参数,为啥?多麻烦,我只是做公司内部系统不用担心SQL注入风险,使用参数化查询不是给自己找麻烦,简简单单拼SQL,万事OK错误认识2.参数化查询时是否指定参数类型、参数长度没什么区别 以前也一直都觉的加与不加参数长度应该没有什么区别,仅是写法上..
hibernate3例子 阅读(35) |
摘要: 1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 另外一个提高效率的方法是在可能的情况下,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比...
hibernate3例子 阅读(20) |
摘要: 1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。 2. 主键与外键 一般而言,一个实体不能既无主键又无外键。在E—R 图中, 处于叶子部位的实体, 可以定义主键,也...
hibernate3例子 阅读(15) |}

我要回帖

更多关于 spring hibernate 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信