技术标签: Hibernate JPA+Hibernate SpringMVC JPA Spring
1. Native Hibernate APIs and hbm.xml Mappings
2. Native Hibernate APIs and Annotation Mappings
3. Java Persistence API (JPA)
第一种方式对象类的定义和对象与数据库间的映射配置信息是分开的,对象类就是一平常Java类,配置信息就一hbm.xml文件。用这种方式,看似划分清晰,但写起来和用起来感觉不是太爽,一是写的东西多,写的多出错的机会就大;二是不停地在对象类和配置文件间来回切换,闪得慌。第二种方式直接将hbm.xml配置文件扔掉,将配置信息以Annotation风格与对象类紧密结合在一起。整合之后感觉清爽不少,少写了不少代码,对象属性与数据库表紧密结合,代码维护成本大大减少。第三种方式采用了JPA 2.0,JPA是ORM的一种规范,定义了操作的标准接口,对应该接口已有几种实现:Hibernate,EclipseLink。与第二种方式相比,JPA方式需要一persistence.xml配置文件。
对比上述三种方式,个人比较倾向于第三种,原因一是拥有Annotation带来的优点,二来如果那天不想使用Hibernate了,改用其他类似EclipseLink,或者其他的ORM,更换代价非常小。
Spring 3.1相比之前版本,出现了一新特征:JPA EntityManageFactory bootstrapping without persistence.xml。这一特征的出现,进一步简化了Spring与JPA间的整合:移走persistence.xml。
下面就是对Spring与JPA 2.0 (Hibernate 4)整合的配置文件:
配置文件主要包含了5个部分:
1. Data source Configuration
2. JPA Entity Manager Factory Configuration
3. Transaction Configuration
4. Transaction Management
5. Exception
具体内容就不赘述了,尝试一下的话,可以参考或修改:Spring+JPA
注:最近写了一篇综合运用Spring各种相关技术的博文,涉及到技术包含了Spring 3.1.3, Spring MVC, Hibernate 4.1.7, EhCache, Spring Data JPA 1.1.0, MySQL 5, Spring Security 3.1.3, Spring Mail, Recapcha, c3p0,博文包含了各种技术的详尽配置信息,最后给出了可运行的源码。新博文对数据相关的配置进行了更新请查阅:基于Spring的注册登录系统,配置请查看第6部分spring-data.xml配置文件。
文章浏览阅读5.9k次。笔记本电脑怎么进CMOS密码巧设置笔记本电脑怎么进CMOS密码巧设置 笔记本电脑为了保护用户的数据安全,往往采用加密的方式,最常见的还是CMOS密码加密技术。为了让你的重要数据更加安全,你可能需要设置不同的密码,这也就要求你记住许多密码。对于笔记本电脑用户来说,真的需要设置一道道密码关卡吗?非也非也! 一、认识与设置笔记本电脑的CMOS密码 笔记本电脑的CMOS密码大致分为超级密码(Supervi..._电脑第一道密码修改
文章浏览阅读2.5k次,点赞2次,收藏5次。迟到的文章,就当库存发出来吧~_jangow01
文章浏览阅读1.7w次,点赞2次,收藏5次。默认情况下RDD的transformation是lazy形式,实际计算只有在ation时才会进行,而且rdd的计算结果默认都是临时的,用过即丢弃,每个action都会触发整个DAG的从头开始计算,因此在迭代计算时都会想到用cache或persist进结果进行缓存。敝人看到很多资料或书籍有的说是persist或cache会触发transformation真正执行计算,有的说是不会!敝人亲自实验了一把..._spark cache和persist不生效
文章浏览阅读2.4k次。HTML之marquee(文字滚动)详解语法:以下是一个最简单的例子:代码如下:Hello, World下面这两个事件经常用到:onMouseOut=“this.start()” :用来设置鼠标移出该区域时继续滚动onMouseOver=“this.stop()”:用来设置鼠标移入该区域时停止滚动代码如下:onMouseOut=“this.start()” :用来设置鼠标移出该区域时继续滚动 onMouseOver=“this.stop()”:用来设置鼠标移入该区域时停止滚动这是一个完_html滚动
leecode++理解:本文介绍了一些LeetCode题目的解析和思路,包括两数相加、寻找有序数组的中位数、最长字串、整数反转等。还讨论了一些下标规律和正则表达式匹配问题。
文章浏览阅读8.5k次,点赞2次,收藏28次。UDPServer.javaimport java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;/* * 服务器端,实现基于UDP的用户登陆 */public class UDPServer { public s_java xsocket jar包,实现udp服务端
文章浏览阅读1.4w次。最近项目中用到ItemBased Collaborative Filtering,实践过spark mllib中的ALS,但是因为其中涉及到降维操作,大数据量的计算实在不能恭维。所以自己实践实现基于spark的分布式cf,已经做了部分优化。目测运行效率还不错。以下代码package modelimport org.apache.spark.broadcast.Broadcastimp_spark cf
文章浏览阅读1.8w次。 在我的博客移动平台播放器ijkplayer开源框架分析(以IOS源码为例),大致介绍了一下ijkplayer的基本函数调用顺序和主要线程作用,本博客想介绍一下在直播应用中,针对卡顿和秒开做的一些优化,本优化经验主要是用在Android系统上,ios上也可以借鉴,按本博客修改代码,网络带宽足够的情况下,音视频播放基本流畅不卡顿,首屏时间在500ms以内。 首先来看直播应用中的卡顿。直..._libijkplayer 播放直播流卡顿
文章浏览阅读2.3k次,点赞3次,收藏28次。数据挖掘实践(金融风控-贷款违约预测)(三):特征工程目录数据挖掘实践(金融风控-贷款违约预测)(三):特征工程1.引言2.特征预处理2.1缺失值填充2.2时间格式处理2.3类别特征处理3.异常值处理3.1 检测异常的方法一:正态分布法3.2 检测异常的方法二:箱型图3.3异常值的处理方法4.数据分桶5.特征交互6.特征编码6.1 labelEncode 直接放入树模型中6.2 逻辑回归等模型要单独增加的特征工程7.特征选择7.1 Filter7.2 Wrapper (Recursive feature _金融风控(大数据)特征工程
文章浏览阅读1.1k次,点赞7次,收藏11次。2️⃣若失败消息提示需要更换http,去阿里云中找到相关镜像 测试连接通过后重新下载驱动。3️⃣上述方法还是不行 可以关闭data grip后再来几遍。1️⃣首先将电脑连接的Wi-Fi关闭 连接手机热点。_datagrip插件下载失败
文章浏览阅读162次。一、介绍Npm包管理工具,JS开发者能够更方便的分享和复用以及更新代码,被复用的代码被称为包或者模块,一个模块中包含了一到多个js文件。在模块中一般还会包含一个package.json的文件,该文件中包含了该模块的配置信息。一个完整的项目,需要依赖很多个模块。一个完整的npm包含三部分npm网站-----用于预览npm管理的包注册机制-----用于上传包,使用数据库来维护包与上传者..._h5页面能使用npm包管理工具么
文章浏览阅读154次。如果是通过chrome调用摄像头的话:navigator.mediaDevices.enumerateDevices().then(gotDevices).catch(errorCallback);...function gotDevices(deviceInfos) {...for (var i = 0; i !== deviceInfos.length; ++i) {var deviceInf..._navigator.mediadevices.enumeratedevices() 将摄像头渲染到 video