刚刚开始肯定好多人都会问什么是hibernate呢?
那么下面我们就来了解一下什么事hibernate吧!
首先,Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
我们接触了Intelij IDEA,据了解hibernate这是一款特别强大的软件,下面带你们大概的了解一下idea看一下大概的操作,然后有兴趣的同学可以去学习一下。
首先我要说一点,在IntelliJ IDEA里面“new Project”就相当于我们eclipse的“workspace”,而“new Module”才是创建一个工 程,这是要注意的一点。
Intelij IDEA 中的架构图:

创建一个工程分为以下几步:
(1)New Project
(1.1)第一步
        
(1.2)第二步

(1.3)第三步

这样一个项目就有了,接下来我们要添加我们需要的资源
(2)创建lib文件夹

以上就是现阶段我们所需要的jar包
(3)创建resource文件夹,其中包含hibernate 的大配置信息,在这要注意命名问题:hibernate.ccfg.xml后面绝对不能少了ccfg.xml。

<?xml version=‘1.0‘ encoding=‘utf-8‘?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        < !--数据库连接设置-->
     < !--数据库JDBC驱动设置-->
        <property name="connection.driver_class"
>oracle.jdbc.driver.OracleDriver</property>
  
    < !--数据库url-->
        <property name="connection.url"
>jdbc:oracle:thin:@localhost:1521:orcl</property>
    < !--数据库用户名-->
        <property name="connection.username"
>lex</property>
    < !--数据库用户密码-->
        <property name="connection.password"
>lex</property>
        < !--JDBC连接池(使用内置的)-->
        <property name="connection.pool_size"
>1</property>
       < !--SQL方言-->
        <property name="dialect"
>org.hibernate.dialect.Oracle10gDialect</property>
        < !--使Hibernate自动会话上下文管理-->
        <property name="current_session_context_class"
>thread</property>
       <!--关闭二级缓存-->
        <property name="cache.provider_class"
>org.hibernate.cache.NoCacheProvider</property>
        <!-- 是否将运行期间生成的sql输出到日志以供调试-->
        <property name="show_sql"
>true</property>
       < !--在启动时,删除和重新创建数据表结构-->
        <property name="hbm2ddl.auto"
>update</property>
<!-- 关联小配置-->
<mapping-resource>
    cn/lex/entity/Student.hbm.xml</mapping-resource>
</hibernate-configuration >
(4)配置小配置,存在于实体层,命名:Student.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.lex.entity">
    <class name="Student" table="Student">
        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <property name="name"></property>
    </class>
</hibernate-mapping
>
(5)书写测试
package cn.lex.test;
import cn.lex.entity.Student;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
/**
 * Created by accp on 2017/1/9.
 */
public class FirstTest {
    Configuration cfg;  //配置对象
    Session session;   //会话对象
    Transaction tx;    //事务对象
    @Before
    public void mybefore(){
        cfg=new Configuration().configure();  //获取配置对象
        SessionFactory factory = cfg.buildSessionFactory(); //获取sessionfactory对象
         session= factory.openSession();  //获取session对象
         tx= session.beginTransaction();  //开启事务
    }
    //添加学生
    @Test
    public void add(){
        Student stu=new Student();
        stu.setName("大大大大胖子");
        session.save(stu);  //提交到数据库
        System.out.println("save ok!");
    }
    //根据条件查询学生姓名
    @Test
    public void select(){
        String hql="from Student where id=?";
        Query query = session.createQuery(hql);
        query.setParameter(0,26);
        Student stu =(Student) query.uniqueResult();
        System.out.println(stu.getName());
    }
    //修改学生姓名
    @Test
    public void update(){
      Student stu=session.load(Student.class,serializable:1);
      stu.setName("小小小小胖子");
      System.out.println("update ok!");
    }
    //删除学生
    @Test
    public void delete(){
        Student stu=session.load(Student.class,serializable:1);
        session.delete(stu);
        System.out.println("delete ok!");
    }
    //查询学生
    @Test
    public void select(){
      Student stu=session.load(Student.class,serializable:1);
      System.out.println("姓名:"+stu.getName());
    }
    @After
    public void after(){
        tx.commit();  //提交事务
        session.close();  //关闭session
    }
}
如果这些你都完成了,那么恭喜你!你可以点运行了,让我们来见正这激动人心的时刻把。。。。
原文:http://www.cnblogs.com/cuntouyixiaohuo/p/6266100.html