hibernate入门案例(Hibernate中find方法怎样应用)

2024-08-01 03:10:33 0

hibernate入门案例(Hibernate中find方法怎样应用)

大家好,如果您还对hibernate入门案例不太了解,没有关系,今天就由本站为大家分享hibernate入门案例的知识,包括Hibernate中find方法怎样应用的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

Hibernate中find方法怎样应用

基于spring的web应用的入门,前端采用Struts MVC框架,中间层采用spring,后台采用Hibernate。 本文包含以下内容: ·配置Hibernate和事务 ·装载Spring的applicationContext.xml文件 ·建立业务层和DAO之间的依赖关系 ·将Spring应用到Struts中 简介 这个例子是建立一个简单的web应用,叫MyUsers,完成用户管理操作,包含简单的数据库增,删,查,该即CRUD(新建,访问,更新,删除)操作。这是一个三层的web应用,通过Action(Struts)访问业务层,业务层访问DAO。图一简要说明了该应用的总体结构。图上的数字说明了流程顺序-从web(UserAction)到中间层(UserManager),再到数据访问层(UserDAO),然后将结果返回。 Spring层的真正强大在于它的声明型事务处理,帮定和对持久层支持(例如Hiberate和iBATIS) 以下下是完成这个例子的步骤: 1. 安装Eclipse插件 2. 数据库建表 3. 配置Hibernate和Spring 4. 建立Hibernate DAO接口的实现类 5. 运行测试类,测试DAO的CRUD操作 6. 创建一个处理类,声明事务 7. 创建web层的Action和model 8. 运行Action的测试类测试CRUD操作 9. 创建jsp文件通过浏览器进行CRUD操作 10. 通过浏览器校验jsp 安装eclipse插件 ***隐藏网址******隐藏网址***3. MyEclipse插件(破解版) 4. Tomcat插件. tanghan 5. 其他插件包括xml,jsp, 数据库建表 create table app_user(id number not null primary,firstname vchar(32),lastname vchar(32)); 新建项目 新建一个web project,新建后的目录结构同时包含了新建文件夹page用于放jsp文件,和源文件夹test用于放junit测试文件。同时将用到的包,包括struts,hibernate,spring都导入到lib目录下。 创建持久层O/R mapping 1. 在src/com.jandar.model下用hibernate插件从数据库导出app_user的.hbm.xml文件改名为User.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" ***隐藏网址***<hibernate-mapping package="com.jandar.model"> <class name="User" table="APP_USER"> <id column="ID" name="id" type="integer" > <generator class="assigned" /> </id> <property column="LASTNAME" length="10" name="lastname" not-null="false" type="string" /> <property column="FIRSTNAME" length="10" name="firstname" not-null="true" type="string" /> </class> </hibernate-mapping> 2. 通过hibernate synchronizer->synchronizer file生成User.java文件,User对象对应于数据库中的app_user表 注:在eclipse下自动生成的对象文件不完全相同,相同的是每个对象文件必须实现Serializable接口,必需又toString和hashCode方法; import java.io.Serializable; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; public class BaseObject implements Serializable { public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE); } public boolean equals(Object o) { return EqualsBuilder.reflectionEquals(this, o); } public int hashCode() { return HashCodeBuilder.reflectionHashCode(this); } } public class User extends BaseObject { private Long id; private String firstName; private String lastName; /** * @return Returns the id. */ public Long getId() { return id; } /** * @param id The id to set. */ public void setId(Long id) { this.id = id; } /** * @return Returns the firstName. */ public String getFirstName() { return firstName; } /** * @param firstName The firstName to set. */ public void setFirstName(String firstName) { this.firstName = firstName; } /** * @return Returns the lastName. */ public String getLastName() { return lastName; } /** * @param lastName The lastName to set. */ public void setLastName(String lastName) { this.lastName = lastName; } } 创建DAO访问对象 1. 在src/com.jandar.service.dao新建IDAO.java接口,所有的DAO都继承该接口 package com.jandar.services.dao; public interface IDAO { } 2. 在src/com.jandar.service.dao下新建IUserDAO.java接口 public interface IUserDAO extends DAO { List getUsers(); User getUser(Integer userid); void saveUser(User user); void removeUser(Integer id); } 该接口提供了访问对象的方法, 3. 在src/com.jandar.service.dao.hibernate下新建UserDAOHiberante.java import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.orm.hibernate.support.HibernateDaoSupport; import com.jandar.model.User; import com.jandar.service.dao.IUserDAO; public class UserDaoHibernate extends HibernateDaoSupport implements IUserDAO { private Log log=LogFactory.getLog(UserDaoHibernate.class); /* (非 Javadoc) * @see com.jandar.dao.IUserDAO#getUsers() */ public List getUsers() { return getHibernateTemplate().find("from User"); } /* (非 Javadoc) * @see com.jandar.dao.IUserDAO#getUser(java.lang.Long) */ public User getUser(Integer id) { // TODO 自动生成方法存根 return (User) getHibernateTemplate().get(User.class,id); } /* (非 Javadoc) * @see com.jandar.dao.IUserDAO#saveUser(com.jandar.model.User) */ public void saveUser(User user) { log.debug("xxxxxxx"); System.out.println("yyyy"); getHibernateTemplate().saveOrUpdate(user); if(log.isDebugEnabled()) { log.debug("userId set to "+user.getId()); } } /* (非 Javadoc) * @see com.jandar.dao.IUserDAO#removeUser(java.lang.Long) */ public void removeUser(Integer id) { Object user=getHibernateTemplate().load(User.class,id); getHibernateTemplate().delete(user); if(log.isDebugEnabled()){ log.debug("del user "+id); } } } 在这个类中实现了IUserDAO接口的方法,并且继承了HibernateDAOSupport类。这个类的作用是通过hibernate访问、操作对象,进而实现对数据库的操作。

怎么知道hibernate中的众多jar包那个版本和哪个版本是配套的请不要说对初学者没影响

Hibernate的jar包到官网上一般也是一组下载下的.注意支持的java版本,要和其他的框架组合使用,只能试了才知道.

谁帮我解释下hibernate中queryDao.queryUnique(hql)含义,初学者

好久没接触这个了,根据方法名应该是查询一个唯一的对象,所以查询出来的结果是一个Object类型,hql是hibernate的面向对象的查询语言,类似SQL语句,如果不懂语法可以先学习一下。

实体层中字段,数据库表中字段,hbm.xml中的property分别是什么关系初学者!!!!!!!

hbm.xml把实体类和数据库表关联起来,它是配制实体类的对象对应数据库表中的字段:例:       《class name="com.OA_System.hibernate.bean.OA_DAILY" table="OA_DAILY"》 《id name="OA_DAILY_ID" column="ID" type="long"》 《generator class="sequence"》 《param name="sequence"》nl2_sl《/param》 《/generator》 《/id》 《property name="OA_DAILY_DATES" column="DATES" type="string"》《/property》 《property name="OA_DAILY_ADDRESS" column="ADDRESS" type="string"》《/property》 《property name="OA_DAILY_RPERSON" column="RPERSON" type="string"》《/property》 《property name="OA_DAILY_RWAY" column="RWAY" type="string"》《/property》 《property name="OA_DAILY_GAIYAO" column="GAIYAO" type="string"》《/property》 《property name="OA_DAILY_XIANGXI" type="text"》 《column name="XIANGXI" sql-type="clob"》《/column》 《/property》 《/class》《class》标签中:name="com.OA_System.hibernate.bean.OA_DAILY" 代表实体类路径table="OA_DAILY" 代表数据库中的表《id》标签是配置主件《property》标签是配置各个字段(《id》《property》中:name 一般都是我们实体类的对象名,column 对应数据库字段,type 是对应的类型)

hibernate和ibatis的区别

Hibernate的特点: Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。iBATIS的特点: iBATIS入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。iBATIS的缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。当系统属于二次开发,无法对数据库结构做到控制和修改,那iBATIS的灵活性将比Hibernate更适合。系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储过程)才能达到系统性能设计指标。在这种情况下iBATIS会有更好的可控性和表现。 对于实际的开发进行的比较: 1. iBATIS需要手写sql语句,也可以生成一部分,Hibernate则基本上可以自动生成,偶尔会写一些Hql。同样的需求,iBATIS的工作量比Hibernate要大很多。类似的,如果涉及到数据库字段的修改,Hibernate修改的地方很少,而iBATIS要把那些sql mapping的地方一一修改。 2. iBatis 可以进行细粒度的优化 比如说我有一个表,这个表有几个或者几十个字段,我需要更新其中的一个字段,iBatis 很简单,执行一个sql UPDATE TABLE_A SET column_1=#column_1# WHERE id=#id# 但是用 Hibernate 的话就比较麻烦了,缺省的情况下 hibernate 会更新所有字段。 当然我记得 hibernate 有一个选项可以控制只保存修改过的字段,但是我不太确定这个功能的负面效果。 例如:我需要列出一个表的部分内容,用 iBatis 的时候,这里面的好处是可以少从数据库读很多数据,节省流量SELECT ID, NAME FROM TABLE_WITH_A_LOT_OF_COLUMN WHERE ...一般情况下Hibernate 会把所有的字段都选出来。比如说有一个上面表有8个字段,其中有一两个比较大的字段,varchar(255)/text。上面的场景中我为什么要把他们也选出来呢?用hibernate 的话,你又不能把这两个不需要的字段设置为lazy load,因为还有很多地方需要一次把整个 domain object 加载出来。这个时候就能显现出ibatis 的好处了。如果我需要更新一条记录(一个对象),如果使用 hibernate,需要现把对象 select 出来,然后再做 update。这对数据库来说就是两条sql。而iBatis只需要一条update的sql就可以了。减少一次与数据库的交互,对于性能的提升是非常重要。 3. 开发方面: 开发效率上,我觉得两者应该差不多。可维护性方面,我觉得 iBatis 更好一些。因为 iBatis 的 sql 都保存到单独的文件中。而 Hibernate 在有些情况下可能会在 java 代码中保sql/hql。相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。 而iBATIS 的着力点,则在于POJO 与SQL之间的映射关系。也就是说,iBATIS并不会为程序员在运行期自动生成SQL 执行。具体的SQL 需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO。使用iBATIS 提供的ORM机制,对业务逻辑实现人员而言,面对的是纯粹的Java对象,这一层与通过Hibernate 实现ORM 而言基本一致,而对于具体的数据操作,Hibernate会自动生成SQL 语句,而iBATIS 则要求开发者编写具体的SQL 语句。相对Hibernate而言,iBATIS 以SQL开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。 4. 运行效率 在不考虑 cache 的情况下,iBatis 应该会比hibernate 快一些或者很多。***隐藏网址***希望对你有帮助...

我是初学springMVC,与hibernate一起用,现在遇到以下问题,点击表单提交时就出现这个问题

呵呵,这个是肯定的啊还有spring代替MVC这说法你自己想出来的吧?呵呵,这个spring不是这样用的如何使用啊?怎么注入。。注入到哪啊?这个就要你重载下hibernateDaoSupport,这样分页就更方便了,还可以用hibernate的方法看这个public class MyHibernateDaoSupport extends HibernateDaoSupport{ @Resource(name="sessionFactory") public void setSuperSessionFactory(SessionFactory sessionFactory){ super.setSessionFactory(sessionFactory); } /** * 使用hql 语句进行分页查询操作 * @param hql 需要查询的hql语句 * @param offset 第一条记录索引 * @param pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */ public List findByPage(final String hql, final int offset, final int pageSize) { List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { List result = session.createQuery(hql) .setFirstResult(offset) .setMaxResults(pageSize) .list(); return result; } }); return list; }}这个是一个办法,我都这样用,用的是spring2.5,hibernate3.2,如果你用spring2.0你可以把这个换掉@Resource(name="sessionFactory")换成setter方法!其他的就在spirng.xml文件中配置就行整合的时候就extends MyHibernateDaoSupport 这样就行了,这样就可以用分页的方法了,当然上面的方法我自己写的,你也可以自己修改,怎么样写都成!

如果你还想了解更多这方面的信息,记得收藏关注本站。

hibernate入门案例(Hibernate中find方法怎样应用)

本文编辑:admin

更多文章:


三星note 21 ultra(三星note20ultra与note21ultra对比)

三星note 21 ultra(三星note20ultra与note21ultra对比)

本篇文章给大家谈谈三星note 21 ultra,以及三星note20ultra与note21ultra对比对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录三星note20ultra与note21ultra对比曝性能强大三星N

2024年6月24日 15:43

uu助手下载(荒岛求生手机版怎样下载教程)

uu助手下载(荒岛求生手机版怎样下载教程)

本文目录荒岛求生手机版怎样下载教程刺激战场国际服电脑上如何下载荒岛求生手机版怎样下载教程1、通过手机中“应用商店”或“特色订制”搜索需要的荒岛求生软件并下载安装。2、通过手机浏览器搜索需要的荒岛求生软件下载安装(若是自带的浏览器,下载的安装

2024年7月23日 11:46

英格兰vs美国直播视频(cctv5英格兰对美国谁解说)

英格兰vs美国直播视频(cctv5英格兰对美国谁解说)

其实英格兰vs美国直播视频的问题并不复杂,但是又很多的朋友都不太了解cctv5英格兰对美国谁解说,因此呢,今天小编就来为大家分享英格兰vs美国直播视频的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录cctv5英格

2024年8月12日 11:45

搞趣网:火影忍者手游有哪几种玩法 玩法介绍?合肥市启趣教育咨询有限公司怎么样

搞趣网:火影忍者手游有哪几种玩法 玩法介绍?合肥市启趣教育咨询有限公司怎么样

本文目录搞趣网:火影忍者手游有哪几种玩法 玩法介绍合肥市启趣教育咨询有限公司怎么样趣网咖为什么打不开搞趣网:火影忍者手游有哪几种玩法 玩法介绍火影忍者手游组织玩法模式介绍:1、组织大厅组织系统目前包括五大功能:组织详情、组织祈福、迎击叛忍、

2024年3月25日 14:20

优酷官方网站首页登录(如何登录优酷网)

优酷官方网站首页登录(如何登录优酷网)

大家好,如果您还对优酷官方网站首页登录不太了解,没有关系,今天就由本站为大家分享优酷官方网站首页登录的知识,包括如何登录优酷网的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录如何登录优酷网优酷会员怎样登录优酷网页版

2024年5月25日 19:53

qq键盘皮肤下载(qq键盘皮肤怎么换  是vivo手机)

qq键盘皮肤下载(qq键盘皮肤怎么换 是vivo手机)

大家好,qq键盘皮肤下载相信很多的网友都不是很明白,包括qq键盘皮肤怎么换 是vivo手机也是一样,不过没有关系,接下来就来为大家分享关于qq键盘皮肤下载和qq键盘皮肤怎么换 是vivo手机的一些知识点,大家可以关注收藏,免得下次来找不

2024年7月22日 06:30

ios10 3 3(苹果ios10.3.3系统怎么样)

ios10 3 3(苹果ios10.3.3系统怎么样)

本文目录苹果ios10.3.3系统怎么样苹果ios10.3.3怎么升级到11苹果手机ios10.3.3有哪些新功能ios10.3.3可以越狱吗苹果ios10.3.3系统怎么样iPhone6s升级至iOS10.3.3版本系统后并没有出现各位所

2024年7月23日 15:08

驾考宝典和车轮哪个好?用车轮驾考通考理论怎么样

驾考宝典和车轮哪个好?用车轮驾考通考理论怎么样

本文目录驾考宝典和车轮哪个好用车轮驾考通考理论怎么样车轮驾考通好不好车轮驾考通考驾照用了多长时间车轮驾考通用的人多吗车轮驾考通闪退车轮驾考通有什么用车轮驾考通是原题吗车轮驾考通各位用过吗怎么样车轮驾考通科目一怎么重新做驾考宝典和车轮哪个好在

2024年1月30日 05:20

7 Days to Die 七日杀 PC MAC 正版 steam 国区礼物 怎么在steam下载?七日杀A18在哪里可以下载

7 Days to Die 七日杀 PC MAC 正版 steam 国区礼物 怎么在steam下载?七日杀A18在哪里可以下载

本文目录7 Days to Die 七日杀 PC MAC 正版 steam 国区礼物 怎么在steam下载七日杀A18在哪里可以下载七日杀电脑上去哪下载正版游戏七日杀自带中文吗七日杀饥荒mod怎么安装7 Days to Die 七日杀 PC

2024年6月26日 08:21

寻找岳阳临湘失散的朋友叫杨冰的女生?临湘有当地的信息网站吗

寻找岳阳临湘失散的朋友叫杨冰的女生?临湘有当地的信息网站吗

本文目录寻找岳阳临湘失散的朋友叫杨冰的女生临湘有当地的信息网站吗寻找岳阳临湘失散的朋友叫杨冰的女生我是临湘的,可是没听说过她,在网上找的效果可能不是很好噢,因为我发现,来百度知道看临湘问题的人不是很多,而且这个名字也蛮大众化的,不是很好找,

2024年6月7日 09:29

万年历黄道吉日查询(万年历黄道吉日,怎样在万年历里查黄道吉日)

万年历黄道吉日查询(万年历黄道吉日,怎样在万年历里查黄道吉日)

本文目录万年历黄道吉日,怎样在万年历里查黄道吉日2022年万年历黄道吉日查询表2020年黄道吉日吉时查询表,万年历黄道吉日吉时万年历黄道吉日,万年历黄道吉日2022年黄道吉日万年历 2022年吉日查询一览表万年日历查询吉日吉时,万年历黄道吉

2023年8月15日 12:00

三星s21和s21+的区别?三星s21看电池健康详细教程

三星s21和s21+的区别?三星s21看电池健康详细教程

各位老铁们好,相信很多人对三星s21都不是特别的了解,因此呢,今天就来为大家分享下关于三星s21以及三星s21和s21+的区别的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录三星s21和s21+的区别三星s21看

2024年5月16日 12:19

治疗呕吐泻痢(治疗泻痢的良药——黄连)

治疗呕吐泻痢(治疗泻痢的良药——黄连)

本文目录治疗泻痢的良药——黄连肠胃炎的症状及治疗>拉肚子,呕吐,不想吃饭,睡觉老做梦,出汗小儿泄泻介绍及治疗方法云南白药泻痢消片说明书治疗泻痢的良药——黄连黄连,是大家熟悉的中药,黄连口服液、黄连上清片等等,很多黄连制成的中成药,市场上备受

2023年5月14日 21:00

中望3D旋转与CAXA旋转的区别?中望隐藏快捷键

中望3D旋转与CAXA旋转的区别?中望隐藏快捷键

本文目录中望3D旋转与CAXA旋转的区别中望隐藏快捷键中望3D2022电脑配置要求和proe相比,中望3D怎么样好用不中望3D全面兼容功能中望3D是什么中望3D可以倒程序吗中望3d能替代solidworks吗中望3D好用吗三维CAD中望3D

2024年6月16日 06:20

pixellab制作头像官方下载(pixellab怎么打开QQ上面下载的文件)

pixellab制作头像官方下载(pixellab怎么打开QQ上面下载的文件)

本文目录pixellab怎么打开QQ上面下载的文件pixellab怎么弄像素风格pixellab有苹果版吗小米10用QQ下载的东西怎么上传Pixellab软件里OPPO手机怎么下载pixellab中文版pixellab怎么打开QQ上面下载的

2024年6月10日 04:47

86版五笔输入法官方下载电脑版(电脑五笔输入法怎么下载安装)

86版五笔输入法官方下载电脑版(电脑五笔输入法怎么下载安装)

各位老铁们好,相信很多人对86版五笔输入法官方下载电脑版都不是特别的了解,因此呢,今天就来为大家分享下关于86版五笔输入法官方下载电脑版以及电脑五笔输入法怎么下载安装的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目

2024年6月30日 03:31

怎么买狗狗币(有谁知道狗狗币嘛)

怎么买狗狗币(有谁知道狗狗币嘛)

本文目录有谁知道狗狗币嘛狗狗币、以太币等币都在哪里买的ETH、ETC和狗狗币轮番上涨,为什么上涨的都是人家的币加密货币最近行情飙涨,狗狗币,比特币真的有实用价值吗狗狗币国内能买吗如何购买狗狗币(doge)狗狗币怎么买入和交易dogeking

2024年6月27日 22:03

日志管理软件(免费的日志软件急需)

日志管理软件(免费的日志软件急需)

本文目录免费的日志软件急需工作日志软件哪款好用个人工作日志、日常事务管理软件免费的日志软件急需Milogs工作日志管理服务器,能帮您管理好您的员工与下属。让您时时追踪,所有员工的工作完成情况,随时对该员工的完成情况进行审批。及时查看,所有员

2024年7月3日 15:05

应用宝ios版官网下载(苹果手机怎么下载应用宝)

应用宝ios版官网下载(苹果手机怎么下载应用宝)

大家好,如果您还对应用宝ios版官网下载不太了解,没有关系,今天就由本站为大家分享应用宝ios版官网下载的知识,包括苹果手机怎么下载应用宝的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录苹果手机怎么下载应用宝苹果手

2024年7月31日 19:05

被诅咒的心攻略(谁能给我个黑庙各个细节的全攻略)

被诅咒的心攻略(谁能给我个黑庙各个细节的全攻略)

本文目录谁能给我个黑庙各个细节的全攻略怎么过《恶魔的石板和被诅咒的犬公主》最后那个结局巫师3支线,士兵雕像、贵族雕像,任务攻略血源诅咒好玩不好玩DNF红玉的诅咒怎么打,红玉的诅咒攻略诅咒铠甲2.02攻略如果自己被人诅咒,应如何破解,有没有可

2024年6月17日 22:10

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索