<"> <" />
Hibernate关系映射和HQL

Hibernate关系映射和HQL

ID:37918547

大小:46.50 KB

页数:5页

时间:2019-06-02

Hibernate关系映射和HQL_第1页
Hibernate关系映射和HQL_第2页
Hibernate关系映射和HQL_第3页
Hibernate关系映射和HQL_第4页
Hibernate关系映射和HQL_第5页
资源描述:

《Hibernate关系映射和HQL》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Hibernate一.关系映射1.单表映射:a.publicclassUser{privateIntegerid;privateStringname;get/set}b.xml://配置主键的生成方式

2、string">c.hibernate.cfg.xml配置相应数据库和映射,show_sql=true;使console的sql语句可见d.采取junit进行测试:一般通过junit的setUp方法初始化,通过tearDown释放资源,自动加载publicclassClientextendsTestCase{protectedSessionsession;publicClient(Stringname){super(name);}protectedvoidse

3、tUp()throwsException{Configurationconfig=newConfiguration().configure();//创建Hibernate配置管理类,默认加载cfg.xml,若改名则用configure(newFile(“src/hib.cfg.xml”));加上路径SessionFactorysessionFactory=config.buildSessionFactory();session=sessionFactory.openSession();}//是ap

4、plication和Hibernate交互接口protectedvoidtearDown()throwsException{if(session!=null)session.close();}publicvoidtestCreate(){Useruser=newUser();user.setName("hello");//自动加载Transactiontr=null;//改变数据库数据的操作都要开启一个事物try{tr=session.beginTransaction();session.save

5、(user);tr.commit();}catch(HibernateExceptione){//将自由状态变成持久状态e.printStackTrace();}if(tr!=null)tr.rollback();}publicvoidtestRetrieve(){Useruser=(User)session.get(User.class,122);//得到xml中的主键对应的对象assertEquals("hello",user.getName());}//使用断言精确判断,防止空格等因素pub

6、licstaticTestsuite(){//junit的静态测试方法TestSuitets=newTestSuite();Clientcl=newClient("testCreate");ts.addTest(cl);returnts;}}e.session的load和get方法的区别:1.对象存在时,load返回实体代理类类型,get返回实体类2.对象不存在时:load抛出异常,get返回null(用于判断)f.实体对象的生命周期1.Transient自由状态:与Hibernate和数据库没有

7、任何关系2.Persistent持久状态:纳入了Hibernate的Session实体对象管理的容器,session会复制实体对象的引用并进行脏数据检查,实体对象任何状态的改变最终都会同步到数据库。例如:Transactiontrx=null;trx=session.beginTransaction();Useruser=(User)session.load(User.class,1);user.setName("nihao");trx.commit();//session.update(user

8、);就不需要了3.Detached游离状态:(session.close()),与Hibernate和数据库没有任何关系,但是实体对象对应数据库的一条纪录。如:trx=session.beginTransaction();Useruser=newUser();user.setId(61);只要一个主键与数据库唯一标识session.delete(user);//进行脏数据检查trx.commit();//真正执行2.Generator的主键产生方式:a.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。