Tips of hibernate +weblogic 8.1 + oracle 9.2 / db2 8.1

使用SSL构建安全的Socket 使用SSL构建安全的Socket  bromon原创 版权所有  SSL(安全套接层)是Netscape公司在1994年开发的,最初用于WEB浏览器,为浏览器与服务器间的数据传递提供安全保障,提供了加密、来源认证和数据完整性的功能。现在SSL3.0得到了普遍的使用,它的改进版TLS(传输层安全)已经成为互联网标准。SSL本身和TCP套接字连接是很相似的,在协议栈中,SSL可以被简单的看作是安全的 阅读详情

Tips of  hibernate +weblogic 8.1 + oracle 9.2 / db2 8.1

bromon原创 请尊重版权

 

       最近的工作都是在webligc 8.1 + hibernate的平台上做开发,涉及的数据库是oracle 9.2和db2 8.1。对于这两个数据库我的了解都远远不够,所以开发中遇到很多问题,还好问题都解决了,很感谢阿古。有的问题也许大家都会遇到,列出我的解决办法,供大家参考。

 

一、weblogic 8.1下的数据库连接池配置

 

weblogic 8.1下配置连接池是很容易的,通过console全鼠标操作。以前我做过很多次了,驾轻就熟,很快搞定。编写好pojo和hbm,test一下,结果抛出了一个SQLException,具体信息我没有记录,大概意思是说:“事务没有被提交,因为它处于一个分布式事务中,当分布式事务结束后它会被提交。”打开oracle,确实没有看到测试数据,整个环境中我没有使用JTA,也不存在分布式数据库。Google了一下,看见别人的建议有:

 

1、              选择jdbc驱动的时候,不要使用xa系列驱动。这个其实大家都知道,xa系列驱动是为JTA准备的,我在配置连接池的时候也确实没有选择这类驱动。排除。

2、              修改startWeblogic.cmd,不要启动pointbase。查看startWeblogic.cmd后没有发现有启动pointbase的迹象,在端口列表中也没有发现。排除。

 

后来找到的解决办法是,配置webloigc的data source时,有这么一个选项:

 

Honor Global Transactions

 

它的相关说明是:

 

Specifies whether this data source will participate in existing global (XA) transactions. Unchecking this option while creating the data source should be done rarely and with care. This option can not be changed once the data source is created.

 

       就是它了,把它去掉,try again,passed。

      

       上述问题在oracle和db2中都存在。

 

二、时间字段的处理

 

开发过程中涉及到了时间的存储和查询,相关的处理要依靠oracle和db2自己的函数,有小小区别。

 

一个hibernate中对oracle进行时间查询的例子:

from scene.pojo.TaskInfo as ti where and ti.taskStartTime>=to_date('"+start+"','yyyy-MM-dd HH:mi:ss') and ti.taskEndTime<=to_date('"+end+"','yyyy-MM-dd HH:mi:ss')";

 

       其中的start和end变量为java.util.Date()。使用了oracle的to_date函数来做日期转换,很多java程序员也许会和我一样,直觉的采用”yyyy-MM-dd HH:mm:ss”的格式作为时间的正则表达式,但是在oracle中会引起错误:”ORA 01810 格式代码出现两次”。原因是sql中不区分大小写,MM和mm被认为是相同的格式代码,所以oracle的sql采用了mi代替分钟。

 

       DB2中的查询语句是:

from scene.pojo.TaskInfo as ti where and ti.taskStartTime>=timestamp('"+s+"')  and ti.taskEndTime<=timestamp('"+e+"')";

 

       DB2中的函数是timestamp,无须指定时间格式。

 

三、Hibernate的lazy loading

 

Lazy loading是进行集合映射时很有用处的优化选项,但是使用起来容易遇到问题。比如在我们的应用中,user->post形成一对多的映射,User中有一个包含post的List。同时系统采用了一个HibernateSession来管理session,它的逻辑是每进行一次数据库操作,就开新的session,操作完成后立即关闭该session。这样做的好处是可以严格关闭session,避免菜鸟级的错误,但是hibernate.org并不推荐这么做。因为这不适合lazy loading,也不适合跨方法的事务。

 

回到我们的例子,在User中,有多个属性:name,password,phone等,还有一个List类型的posts。当我们对posts使用lazy laoding的时候,hibernate会在获得User对象的时候,仅仅返回name,password,phone等基本属性,当你访问posts的时候,它才会从数据库中提取posts需要的数据,这就是所谓lazy laoding。但是在我们的系统中,session是被立即关闭的,也就是在读取了name,password,phone等基本属性后,session已经close了,再进行lazy loaiding就会有异常。

 

解决办法是在close session之前,调用Hibernate.initialize(user.getPosts()),告诉系统,user.getPosts()是需要lazy laoding的。但是这样做会破坏HibernateSession类的封装,郁闷。

 

后来采用所谓的OpenSessionInView模式,把session的周期交给servlet filter来管理,每当有request进来,就打开一个session,response结束之后再关闭它,这样可以让session存在于整个请求周期中。但是在实际操作过程中,发现一下问题:

 

Lazy laoding应该是两条select构成的,但是在使用了OpenSessionInView模式后,系统执行了一条select,session就被关闭了。相同的代码,放到普通环境中,就执行正常,目前这个问题已经在java eye挂了很久,无人解答。望高人指点。

基于CatBoost回归模型的完整预测分析:从建模到SHAP可解释性分析 本文介绍了使用CatBoost回归模型进行完整预测分析的流程。首先导入必要的Python库并加载数据,进行数据预处理包括训练测试集划分和归一化处理。然后通过网格搜索优化CatBoost超参数,使用最优参数训练模型并评估预测性能。结果显示模型具有较高的决定系数(R²=0.9944)和较低的误差指标(RMSE=0.0696)。接着进行残差分析和正态性检验,发现残差基本服从正态分布。最后通过SHAP分析实现模型可解释性,识别关键特征影响。该方法为梯度提升树在回归问题中的应用提供了完整解决方案。 阅读详情

相关推荐

ICNN实现入侵检测的思路与源码(CIC-IDS-2017)

基于ICNN实现入侵检测,可用于现实网络

t1274171989的博客 8414

利用Eclipse开发Hibernate应用程序

利用Eclipse开发Hibernate应用程序bromon原创 请尊重版权  Eclipse是目前非常流行的开发平台,开放扩展的架构让很多程序员找到了自己个性化的工作环境,Hibernate也是目前牛叉得不得了的框架,至少在EJB 3大行其道之前,它是我们在考虑OR映射时非常好的选择。本文主要介绍如何利用Hibernate Syn插件在Eclipse 3.0.1中快速的开发Hibernate

Sometimes Java 2万+

YT8531 PHY芯片硬件设计与MDIO/RGMII实战指南

以太网PHY芯片是FPGA系统实现网络通信的物理层核心,其关键在于标准接口(如MDIO管理总线和RGMII数据接口)的正确实现与协同。MDIO作为IEEE 802.3定义的低速配置通道,负责寄存器级控制与状态监控;RGMII则通过双沿采样精简引脚,在千兆速率下兼顾性能与PCB布线可行性。技术价值体现在电压兼容性(支持1.8V/2.5V/3.3V)、可编程时序调节(RX_DELAY/TX_DELAY)及多级环回测试能力,显著提升国产FPGA平台(如Xilinx Zynq)的工程鲁棒性。典型应用场景涵盖嵌入式网

weixin_42453228的博客 1331

Eclipse 3.0.1插件方案(Java、c#版)

Bromon原创 请尊重版权  Eclipse 3.0推出已经好几个月了,但是我一直都在继续使用2.1.4,等的就是各种插件的稳定生机。最近在Eclipse 3.0.1的平台上稍有操练,觉得插件的功能更加丰富强大,安装也更加容易,Eclipse体现了它惯有的强悍生命力。聊一聊我所使用的主流插件和基本配置。 首先是汉化,作为开发工具,英文界面并没有什么不好,不过我们可以汉化Eclipse

Sometimes Java 2万+

DVWA靶场实战:从搭建到渗透测试的完整指南

本文详细介绍了DVWA靶场的搭建与渗透测试全流程,涵盖LAMP环境搭建、Docker部署及集成环境安装三种方式。通过SQL注入、文件上传漏洞等实战案例,帮助读者掌握Web安全测试技巧,并提供防御方案与进阶调优建议,是网络安全学习的实用指南。

weixin_28312391的博客 488

SEW MDX61B 变频器调试说明

可手动自由更改时间和地址,时间一般不更改,IP地址使用网络适配器地址(Network adapter),点击进入即可。进入网络适配器(Network adapter)后,选择适配器建议地址,点击OK,更改IP地址后点击OK。点击加载配置文件(Load a configuration),加载已保存的应用模块配置文件, 或者点击“next”,开始重新配置AMA0801模块。满足安全回路后,控制模式选为寻参模式(Reference mode),选中开始(start),即可将机械零点设置为电气零点。

xdpcxq的专栏 4299

俺设计的基于J2EE架构的模拟考试系统

基于J2EE框架的模拟考试系统一、系统概述  本系统拟实现基本的网上模拟考试功能,包括学生登陆、在线考试、教师登陆、在线阅卷等模块。二、设计目标  系统除了包含最基本的在线考试功能外,最主要的目的是演示J2EE框架的完整应用,包括jsp/servlet、java web start、消息Bean、会话Bean、实体Bean等J2EE框架中最核心的技术。系统中大量使用了设计模式中的工厂模式、单例模式

Sometimes Java 1万+

伺服电机开发实战指南

伺服电机作为工业自动化的核心部件,正经历前所未有的技术革新。本文从基础原理出发,详细介绍了伺服电机的分类、工作原理和特性,分析了伺服电机系统组成与核心部件,探讨了企业级开发技术,包括控制算法、通信协议和故障诊断等高级功能,并提供了实战案例分析,从行业应用到具体开发步骤,展示了伺服电机的工程实现。通过深入理解伺服电机的原理、掌握开发技术、学习应用案例,可以实现伺服系统的高性能开发与应用。

全栈 1674

java操作Excel的一种方法

Java操作Excel的一种方法  bromon原创 版权所有  MS的电子表格(Excel)是Office的重要成员,是保存统计数据的一种常用格式。作为办公文档,势必要涉及到的电子文档的交换,Excel是一种在企业中非常通用的文件格式,打印和管理也比较方便。在一个Java应用中,将一部分数据生成Excel格式,是与其他系统无缝连接的重要手段。  在开源世界中,有两套比较有影响的API可供使用,

Sometimes Java 8167

【OpenFOAM】-olaFlow-算例1- baseWaveFlume

算例文件注释--olaFlow-算例1- baseWaveFlume

ou_no的博客 3639

LVGL 丝滑菜单3(Silk Menu)

h。

摸鱼专家 88

爱妞所采用的十大SEO技术

爱妞(www.ainiu.net)的推广工作并没有大规模的进行,一是缺少网站推广、SEO等方面的经验,二是实在太缺少时间,很多工作没有时间去做。但是爱妞(www.ainiu.net)在在网站本身的建设上做了很多功课。1. 选择一个友好的独立域名。如今的国际顶级域名已经非常便宜,120RMB/Y的价位上可以选择很多供应商。www.ainiu.net的域名还算友好和便于记忆

Sometimes Java 7177

基于STM32设计的校园智慧路灯系统(华为云IOT)(212)

当前设计并研发了基于STM32的智慧路灯系统,本系统的目的是打造一个高效节能、智能化管理的校园照明环境。通过集成STM32F103RCT6高性能微控制器为核心,结合多种传感器模块如BH1750光敏传感器、热释电人体感应模块以及中科微电子GPS模块等,实现了对校园路灯的精准控制与实时监控。

5131

JDom使用详解

bromon原创 版权所有 转载请注明  JDom是不错的API,算得上简单高效,最重要是已经成为jcp的一部分,这个咱得弄弄。不www.jdom.org上写文档的人实在太懒,文档出奇的少,流传得最广的恐怕是IBM上面的一篇《JDom让java XML变得容易》,不过这篇文章只涉及基本的读写操作,远不能胜任实际工作。花了两天时间,把JDom的基本操作整理出来了,涵盖了大部分的操作:元素、属性、命

Sometimes Java 7146

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

网络在线游戏开发心得(服务器端)(一)

Bromon原创 请尊重版权  一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码。关于这个项目,有很多地方值得聊一聊。本系列不打算把这个项目将得多么详细规范,那是设计文档应该描述的,我打算只说说一些值得注意的地方。   这个项目的一个特别之处是,客户端是手机,用户通过移动网络与服务器通信。和PC相比,手机的处理能力极弱,而且网络流量费用昂

Sometimes Java 6112

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[Mysql] Data truncation: Data too long for column ......

如果不是column的长度实在太小,那么就是编码问题。如今的程序十之八九都用UTF-8了,不过如果不特别留意的话,很容易把mysql的表和字段都建成latin字符集,就会出现这个异常,表和字段都需要改为UTF-8。

Sometimes Java 5627

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

weblogic 8.1下数据库连接池的配置

weblogic 8.1下面数据库连接池的配置和tomcat、resin等都有比较大的不同,看来bea也越来越有M$的做派,喜欢自立标准。没办法,谁让他是java app server的老大。恨.....  以MS SQLServer 2k为例。打开console:http://localhost:7001/console/,登陆进去,选择jdbc下面的Connection  Pool。然后Co

Sometimes Java 4778

jaxen版本问题造成xpath工作不正常

由于工作中经常涉及跨平台的数据交换,XML是不二选择。 虽然SOAP能让各种异构平台都使用自由对象,但是很难避免要手动处理通过纯文本传递过来的xml数据。XPath能让工作简单很多,这样一条xpath查询:/*[local-name()=Root]/*[local-name()=Person]/*[local-name()=Name]显然要比手动处理SAX流程或者dom t

Sometimes Java 4719

Java中的加密和DSA数字签名

Java中的加密和DSA数字签名  Bromon  一、单向加密(MD5和SHA-1)  单向加密通常用于消息摘要,具体算法可以阅读java.security.*的源代码获得。经过封装之后可以使用简单的静态方法来实现,Look:  package org.bromon; public class MD5Encoder { public static void main(String args[]

Sometimes Java 4526

WTP开发web service的一个严重bug

使用eclipse 3.2 + wtp1.5的all in one版本 ,利用bottom-up wizard创建web service,部署到jboss 4.0.2后,服务器报告:EVERE: Unable to find config file. Creating new servlet engine config file:/WEB-INF/server-config.wsddser

Sometimes Java 4406

WAS 6与Websphere MQ6的整合

WAS 6与Websphere MQ6的整合bromon原创 请尊重版权    整合 的目的是让MQ作为websphere application server的JMS provider,所有的JMS消息会被was转发到MQ队列 中,由于MQ提供了多种平台的API,因此消息的传递可以不再通过转发的方式。任何平台都可以直接连接到MQ获取/发送消息,减少了跨平台消息传递中的不 确定因素。    首先在

Sometimes Java 4358

重要通知:本blog全面停止更新

由于长久以来一直不堪csdn blog系统的折磨,早已另起炉灶,开通了其他blog持续更新。一直没能在这里张贴正式的通知,乃是因为我一直无法正常登陆csdn blog的管理页面,无法张贴该公告。若另读者失望,以为我是虎头蛇尾专门张贴太监文章的人,我非常痛心深表遗憾。如您所见,我在这个blog张贴了接近60篇,其中大半是我原创的技术文章。很多朋友通过该blog获得了知识发表了看法,并且与我成为朋友。

Sometimes Java 4166

Oracle静默安装,含仅软件安装和数据库安装及常见报错处理方法DBT-10317 DBT-05509 [FATAL] ORA-03114

本文详解Oracle 19c单机版静默安装与数据库创建全流程,涵盖目录配置、响应文件编写、安装及建库命令,附常见报错(如DBT-10317、ORA-03114)解析与解决方案,包含删库指令与日志分析,适合内网环境自学实战,免费干货,实用性强。

qq_41474349的博客 170

Oracle 增量同步配置指南:只搬变了的数据,不重复也不漏数

Oracle 老 ERP 的数据要同步到新系统,全量搬不动、增量又怕漏。这篇按八步走完:账号权限、看版本号、建任务组、选变化识别字段、定频率、处理删除、排查琥珀色叹号。重点在第四步和第七步,五个坑都在那儿。

weixin_39226344的博客 379

Mysql数据库基础篇(三):全面掌握数据库与数据表操作:深度剖析底层文件差异与核心管理机制

如果你想彻底改掉某个字段的名字,应该使用 change。实例:将 employee表中的 name列修改为xingming注意:使用 change时,即便不改变数据类型,在指定了新列名后依然需要完整地写一遍它的数据类型与约束定义。

2501_93641778的博客 219

智叟云集系统 · 数据分层与管理体验

智叟云集系统 · 数据分层与管理体验 · 数据分层与管理体验。

2301_77178996的博客 411
上一篇: 用了两年的手机丢了
下一篇: 使用Java编写oracle存储过程
bromon
博客等级 码龄25年 61粉丝 81原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值