hibernate教程

上传人:第*** 文档编号:53582158 上传时间:2018-09-03 格式:PPT 页数:39 大小:326KB
返回 下载 相关 举报
hibernate教程_第1页
第1页 / 共39页
hibernate教程_第2页
第2页 / 共39页
hibernate教程_第3页
第3页 / 共39页
hibernate教程_第4页
第4页 / 共39页
hibernate教程_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《hibernate教程》由会员分享,可在线阅读,更多相关《hibernate教程(39页珍藏版)》请在金锄头文库上搜索。

1、Hibernate教程,目录,Hibernate实例 Hibernate配置映射文件 Hibernate常用类 Hibernate代码范例 Hibernate Annotation实例 Hibernate ID生成策略 多表关联映射 Criteria查询 使用Example实现复杂查询 Hql范例 Hibernate 原生sql的使用,Hibernate配置映射文件,数据库表 hibernate.cfg.xml Hibernate主配置文件 JavaBean 只有属性和get/set方法的数据类,通常一个JavaBean对应一个数据库表 XXXX.hbm.xml ORM文件,通常一个表对应一个

2、数据库表 DAO类文件 操作数据库,hibernate.cfg.xml,org.hibernate.dialect.Oracle9Dialectjdbc:oracle:thin:127.0.0.1:1521:xej2eej2eeoracle.jdbc.driver.OracleDriveroraclethread true true ,Oracle脚本,CREATE TABLE “LOGIN“ ( “ID“ NUMBER NOT NULL ENABLE, “NAME“ VARCHAR2(4000), “PASSWORD“ VARCHAR2(4000), CONSTRAINT “LOGIN_PK

3、“ PRIMARY KEY (“ID“) ENABLE) /CREATE sequence “LOGIN_SEQ“ /CREATE trigger “BI_LOGIN“ before insert on “LOGIN“ for each row begin select “LOGIN_SEQ“.nextval into :NEW.ID from dual; end; /,Java Bean,package demo; public class Login implements java.io.Serializable private Integer id;private String name

4、;private String password;public Login() public Login(String name, String password) this.name = name;this.password = password;public Integer getId() return this.id;public void setId(Integer id) this.id = id;public String getName() return this.name;public void setName(String name) this.name = name;pub

5、lic String getPassword() return this.password;public void setPassword(String password) this.password = password; ,Login.hbm.xml,login_seq ,Hibernate常用类,Configuration: 一个Configuration对应一个配置文件 SessionFactory:一个SessionFactory对应一个数据库 Session:一个session对应一个数据库连接 Transaction:一个session可以对应多个事务,Hibernate代码范例

6、-Create,import org.hibernate.*; import org.hibernate.cfg.*;public static void createLogin() try SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Transaction tx = session.beginTransaction();Login emp = new Login();emp.setId(new Integer(“12“)

7、;emp.setName(“王3“);emp.setPassword(“admin“);session.save(emp);mit();session.close(); catch (HibernateException e) e.printStackTrace();,Hibernate代码范例-Update,public static void updateLogin() try SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession(

8、);Login emp = (Login) session.get(Login.class, new Integer(9);/Login emp = (Login) session.load(Login.class, new Integer(9);emp.setPassword(“admin2“);Transaction tx = session.beginTransaction();session.update(emp);mit();session.close(); catch (HibernateException e) e.printStackTrace(); get方法首先查询sess

9、ion缓存,没有的话查询二级缓存,最后查询数据库; load方法采用延迟加载方式,即创建时首先查询session缓存,没有就创建代理,实际使用数据时才查询二级缓存和数据库,Hibernate代码范例-Delete,public static void deleteLogin() try SessionFactory sf = new Configuration().configure().buildSessionFactory();Session session = sf.openSession();Login emp = (Login) session.get(Login.class, ne

10、w Integer(22);Transaction tx = session.beginTransaction();session.delete(emp);mit();session.close(); catch (HibernateException e) e.printStackTrace();,Hibernate代码范例-Query,public static void queryLogin() try SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();Session

11、 session = sessionFactory.openSession();Criteria criteria = session.createCriteria(Login.class);List users = criteria.list();Iterator iterator = users.iterator();while (iterator.hasNext() Login user = (Login) iterator.next();System.out.println(“id=“ + user.getId() + “;“ + “name=“+ user.getName() + “

12、;“ + “password=“+ user.getPassword();session.close();sessionFactory.close(); catch (HibernateException e) e.printStackTrace();,Annotation方式:Hibernate.cfg.xml,org.hibernate.dialect.Oracle9Dialectjdbc:oracle:thin:127.0.0.1:1521:xej2eej2eeoracle.jdbc.driver.OracleDriveroracle,Annotation方式:Java Bean,pac

13、kage demo; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; Entity Table(name = “LOGIN“, schema = “J2EE“) public class Login implements java.io.Serializable private Integer id;private String name;private String password;pu

14、blic Login() public Login(Integer id) this.id = id;public Login(Integer id, String name, String password) this.id = id;this.name = name;this.password = password;IdSequenceGenerator(name=“login_seq“, sequenceName=“login_seq“)GeneratedValue(strategy=GenerationType.SEQUENCE, generator=“login_seq“)Colum

15、n(name = “ID“, unique = true, nullable = false, precision = 22, scale = 0)public Integer getId() return this.id;public void setId(Integer id) this.id = id;Column(name = “NAME“, length = 4000)public String getName() return this.name;public void setName(String name) this.name = name;Column(name = “PAS

16、SWORD“, length = 4000)public String getPassword() return this.password;public void setPassword(String password) this.password = password; ,Annotation方式:Create,import java.util.*; import org.hibernate.*; import org.hibernate.cfg.AnnotationConfiguration;public static void createLogin() try SessionFact

17、ory sf = new AnnotationConfiguration().configure().buildSessionFactory();Session session = sf.openSession();Transaction tx = session.beginTransaction();Login emp = new Login();emp.setId(new Integer(“12“);emp.setName(“王3“);emp.setPassword(“admin“);session.save(emp);mit();session.close(); catch (HibernateException e) e.printStackTrace();,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号