- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate关系映射和HQL
Hibernate
一.关系映射
1.单表映射:a.public class User { private Integer id; private String name; get/set}
b.xml: class name=User table=user
id name=id column=id type=integer//配置主键的生成方式
generator class=identity/generator /id
property name=name column=name type=string/property /class
c. hibernate.cfg.xml配置相应数据库和映射, show_sql=true;使console的sql语句可见
d.采取junit进行测试:一般通过junit的setUp方法初始化,通过tearDown释放资源,自动加载
public class Client extends TestCase { protected Session session;
public Client(String name) { super(name); }
protected void setUp() throws Exception {
Configuration config=new Configuration().configure();//创建Hibernate配置管理类,默认加载cfg.xml,若改名则用configure(new File(“src/hib.cfg.xml”));加上路径
SessionFactory sessionFactory =config.buildSessionFactory();
session= sessionFactory.openSession(); } //是application和Hibernate交互接口
protected void tearDown() throws Exception {if(session!=null) session.close();}
public void testCreate(){User user=new User();user.setName(hello);//自动加载
Transaction tr=null;//改变数据库数据的操作都要开启一个事物
try{ tr=session.beginTransaction(); session.save(user); mit(); }
catch(HibernateException e) { //将自由状态变成持久状态
e.printStackTrace(); } if(tr!=null) tr.rollback(); }
public void testRetrieve(){
User user=(User)session.get(User.class, 122);//得到xml中的主键对应的对象
assertEquals(hello, user.getName());}//使用断言精确判断,防止空格等因素
public static Test suite(){ //junit的静态测试方法
TestSuite ts=new TestSuite(); Client cl=new Client(testCreate);
ts.addTest(cl); return ts; } }
e.session的load和get方法的区别:1.对象存在时,load返回实体代理类类型,get返回实体类
2.对象不存在时:load抛出异常,get返回null(用于判断)
f.实体对象的生命周期
1.Transient自由状态:与Hibernate和数据库没有任何关系
2.Persistent持久状态:纳入了Hibernate的Session实体对象管理的容器,session会复制实体对象的引用并进行脏数据检查,实体对象任何状态的改变最终都会同步到数据库。例如:Transaction trx=null;
trx=session.beginTransaction(); User user=(User)session.load(User.class, 1);
user.setName(nihao); mit();
// s
您可能关注的文档
最近下载
- 北京百师联盟信息技术研究院.doc
- 2.6《观察与比较》教学设计-2024-2025学年一年级上册科学教科版.docx VIP
- 人教版道德与法治二年级上册《这些是大家的》课件.pptx
- 中国特色大国外交和推动构建人类命运共同体.pptx
- 《产品质量鉴定程序规范 总则》.doc VIP
- 七年级数学(沪教版)上册课件-【第2课时 添括号】.pptx
- The Catcher int heRye麦田守望者英文版.doc
- 农药登记残留试验待测残留物和植物源性食品膳食风险评估残留物目录(2020版).docx
- 甲醇羰基化法制备醋酸.pptx
- 超星网课尔雅《走近核科学技术》超星尔雅答案2023章节测验答案.pdf
文档评论(0)