Hibernate入门

19 篇文章 0 订阅

1. Hibernate简介
   (1) Hibernate是一款ORM框架. Object Relation Mapping
   (2) ORM是指对象关系映射.可以将DB映射成Object,这样程序员可以通过
    对Object操作完成对DB的操作.将JDBC封装在ORM框架底层
   (3)主流ORM框架有Hibernate,iBatis,JPA
2. Hibernate框架体系结构
 (1)主配置文件:用于描述数据库连接信息.
     hibernate.cfg.xml或者hibernate.properties
 (2)映射描述文件:用于描述映射类及属性与DB表和字段之间的对应关系
      User.hbm.xml
 (3)映射类文件:User.java
 (4)主要API组件
  a. Configuration:用于加载主配置文件,获取数据库连接信息
     b. SessionFactory:用于创建Session对象,封装了映射信息以及与定义的SQL
        c. Session:用于对象操作.完成增加,删除,修改,查询操作.
        d.Transaction:用于事务处理.进行增加,删除,修改时需要使用.
      因为Hibernate中自动提交功能是关闭的.
        e.Query:用于执行HQL查询语句.
          HQL属于面向对象查询语句,语句中没有表名和字段名

1.导包
2.在src下新建hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <property name="connection.username">root</property>
  <property name="connection.password">root</property>
  <property name="connection.url">jdbc:mysql://localhost:3306/user</property>
  <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
  <property name="show_sql">true</property>
  <property name="format_sql">true</property>
  <mapping resource="db/mapping/User.hbm.xml"/>
 </session-factory>
</hibernate-configuration>
3.建立User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="db.daomain">
 <class name="User" table="duser">
  <id name="id" type="integer">
   <generator class="native"></generator>
  </id>
  <property name="name" type="string">
   <column name="name"></column>
  </property>
  <property name="pwd" type="string">
   <column name="pwd"></column>
  </property>
 </class>
</hibernate-mapping>
4.一般步骤

Configuration conf = new Configuration();
conf.configure();//加载hibernate.cfg.xml配置文件
SessionFactory sf = conf.buildSessionFactory();//获取SessionFactory实例
session = sf.openSession();//获取session
Transaction trans=session.beginTransaction();得到事务
session.save(user);//插入user   session.get(user.class,5)查询或session.load(user.class,6)load是延迟加载用的时候才执行sql语句
trans.commit();提交事务
增删改查:

 public static void add(User user){
  Session session=HibernateSessionUtil.getSession();
  Transaction trans=session.beginTransaction();
  session.save(user);
  trans.commit();
  HibernateSessionUtil.closeSession();
 }
 public static User findById(int id){
  Session session=HibernateSessionUtil.getSession();
  User user=(User) session.get(User.class, id);
    //User user=(User) session.load(User.class,id)用的时候才加载,因为用的时候session已关闭报异常
  session.close();
  return user;
 }
 public static void update(User user){
  Session session=HibernateSessionUtil.getSession();
  Transaction t=session.beginTransaction();
  session.update(user);//根据user的id来更新
  t.commit();
  session.close();
 }
 public static void delete(int id){
  User user=findById(9);//注意顺序
  Session session=HibernateSessionUtil.getSession();
  Transaction tsa=session.beginTransaction();
  session.delete(user);
  tsa.commit();
  session.close();
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值