在网络资源中有很多S2HS整合的文档和教程,但是真正适合初学者的少之又少,初学者在整合的时候经常会遇到这样活着那样的错误,今天我就把自己在实践中的详细过程都记录下来,希望对自己,对学习S2HS的初学者都有些帮助。 MyEclipse创建一个Hibernate应用的开发步骤: ? 创建工程 ? 切换到MyEclipse Database Explorer透视图 ? 在MyEclipse Database Explorer透视图中完成数据连接并测试数据连接的正确性 ? 为工程增加Hibernate支持 ? 生成HibernateSessionFactory类 ? 创建数据表USERINFO(String userid ,String password, String username,String email,String address,String telephone) ? 根据数据表USERINFO生成POJO和映射文件 ? 测试HQL ? 编写测试文件,测试使用Hibernate生成类 ? ? ? 1、创建一个java工程 ? ? 2、把MyEclipse的工作视图转换为MyEclipse database explorer视图 ? ? 3、在透视图中完成数据库的链接(本文以SQL SERVER 2005为例) ? ? 然后填写数据库链接相关信息:
? ? 选择Driver template为Microsoft SQL Server 2005 Driver name为:sqlserver2005 (这里的命名是任意的) Connection URL: jdbc:sqlserver://localhost:1433;databaseName=test(这里的test是数据库名称,修改为你自己的数据库名) User name和Password分别是数据库的用户名和密码 单击“Add JARs”添加数据库驱动程序(这里需要我们事先下载好相应的数据库驱动程序) 你可以点击Test Driver,对驱动程序进行测试 接下来按照默认进行下去就行,最终会显示数据库链接成功,数据库中所有的表都会在MyEclipse中显示出来,这样数据库这部分就完成了。为了后面测试方便,请在SQL EDIT中自行添加一些数据。 ?
? ? 前面的步骤中已经完成一个Java Project工程的创建,设置了dababase explorer透视图的参数,并利用该视图完成数据库操作的测试。下面完成Hibernate工程的创建。切换至java透视图。
? ? ?
?
? ?
以上也可以用JNDI方式进行链接,自行选择 接下来会让我们创建一个HibernateSessionFactory,【注意】这个类不是Hibernate范围的类,而是MyEclipse为了帮助我们使用Hibernate而提供的一个工具类。帮助我们获取到Hibernate中的session对象。并且它不能放在默认包下面,我们为它要专门建一个package。 ? ? 因为我们的包没有创建,所以直接点击java package 右边的new即可。 ? package创建完如上图: 到目前为止我们就基本添加了hibernate支持,打开你的工程目录,会发现类似如下图示: 5、创建POLO(针对表通过逆向工程产生POLO类和映射文件) ? 切换到database explorer视图 打开Connected to sqlserver2005-> test ->dbo->TABLE,在TABLE中找到表USERINFO,在USERINFO中单击右键选择“Hibernate Reverse Engineering”(Hibernate逆向工程)如下图: ? ? 打开POLO类创建页面如下: 选择Java src folder(Java源文件存放位置)和Java package 勾选“Create POJO <> DB Table mapping information”自动生成映射文件 勾选“Java Data Object ( POJO <> DB Table) ”自动生成POJO类 ? 如图,其它采用默认选项。 ? ? 接下来一路默认即可,最后单击Finish完成。 ? ? 回到Java perspective(Java 视图),展开工程视图看到刚才的创建过程添加了Userinfo.java和Userinfo.hbm.xml,并修改了hibernate.cfg.xml配置文件。这样我们可以自动得到: POJO类:Userinfo.java 映射文件:Userinfo.hbm.xml 修改过的配置文件:hibernate.cfg.xml ? ? 6、测试HQL语言 在java视图下,项目 --- myeclipse --- open hql editor 在HQL Editor中输入:“from UserInfo” 即可查询到表中所有的对象,同时选中某一个对象,在右边的properties视图中还可以看到这个对象中具体属性的值
测试类UserTest.java代码为: package com.njcit.hibernate; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import com.njcit.hibernate.HibernateSessionFactory; public class HibernateTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Session session=HibernateSessionFactory.getSession(); Transaction trans=session.beginTransaction(); Userinfo u=new Userinfo(); u.setUserid("1111"); u.setUsername("444"); u.setPassword("222333"); u.setAddress("111"); u.setEmail("111"); u.setTelephone("222"); trans.begin(); System.out.println("userid:"+u.getUserid()); System.out.println("username:"+u.getUsername()); session.save(u); trans.commit(); //=========================================== Userinfo u2=(Userinfo)session.get(Userinfo.class,"1006"); u2.setUsername("newname"); trans.begin(); session.saveOrUpdate(u2); trans.commit(); //============================================== Userinfo u3=(Userinfo)session.get(Userinfo.class, "1001"); trans.begin(); session.delete(u3); trans.commit(); //============================================== Query q=session.createQuery("from Userinfo"); List list=q.list(); for(Object o:list){ System.out.println(((Userinfo)o).getUserid()+ ((Userinfo)o).getUsername()); } session.close(); } } ? 测试类中分别完成数据插入,数据修改,数据删除,数据查询。 运行结果为: ? ? ? ? ? ? ? 8、调试小结: ü 创建数据连接时必须给出正确的URL,用户名,密码,并且正确引入数据库驱动包。 ? ü 为工程引入hibernate支持时,引入版本3.1(3.2的配置中有稍许区别) ? ? ü 在database explorer视图中创建POJO类时采用默认设置,如果主键生成策略为native则需要额外的配置,否则报错。(设置为native则数据插入时报错) ? ? ü 在database explorer视图中创建POJO类时,注意选择的表如果满足某种关联条件则生成的相应配置文件会引用其他的类,而这些类本身并不存在,运行时即报错。这时需要修改配置文件*.hbm.xml |
详细解决方案
在MyEclipse上怎么添加hibernate支持 (全)【转】
热度:77 发布时间:2016-04-23 02:20:05.0
相关解决方案
- hibernate 存入数据库当前时间
- Hibernate 投射文件中length属性无法改变integer字段的默认长度
- MyEclipse 连接tomcat 出现如上异常
- Exception in thread "main" org.hibernate.HibernateException: /hibernate.cfg.xml解决办法
- hibernate DAO中加了局物,未提交
- hibernate 字段lazy 的兑现原理
- Hibernate 的query.list()的有关问题
- Hibernate 关联表字段赋值有关问题
- 零配置的有关问题(struts2+Hibernate)
- hibernate 连接 oracle session 有关问题
- Myeclipse 注册码生成器 源码 亲测
- hibernate 中没有做一对多 , 那种关联映射的关联的话如何做连接查询
- hibernate 联接mysql出错
- 大神们开始觅错啦!org.hibernate.exception.SQLGrammarException: could not execute query
- struts2,hibernate,spring3 常用框架的API CHM版本,该怎么处理
- struts2,hibernate,spring3 惯用框架的API CHM版本
- MyEclipse 上配置tomcat遇到的有关问题
- struts hibernate 测试小例子 不报错 但数据库没反应 求分析项目在小弟我的资源里面
- struts2 hibernate 分页有关问题
- myeclipse 左侧的目录结构变了 如何改回来
- hibernate与此同时使用多数据源?spring+hibernate
- hibernate 保留对象时,根据映射文件,无法获取主键值
- hibernate 多对多添加有关问题,弄一天多了,请求大佬解答。小的 在此谢过了
- MyEclipse 中 jsp页面编译报错有关问题
- struts + hibernate 后台页面修改数据后,前台页面显示的内容新旧数据交替出现。请高手帮忙分析上原因
- hibernate 多对1关联配置有关问题
- Hibernate,级联保存为何无效?
- MyEclipse 8.5怎么使用JeasyOPC
- hibernate 一对1 ,插入不进去数据
- hibernate 连接oracle异常