hibernate的简单例子实现

这篇文章讲述的是一个hibernate的简单例子的实现,如有错误或者不当之处,还望各位大神批评指正。

目标

  1. 配置hibernate
  2. 实现学生类的ORM映射
  3. 实现对学生的添加、修改、删除

配置

hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
   <session-factory>

   <!-- 这个属性使 Hibernate 应用为被选择的数据库生成适当的 SQL -->
   <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>

   <!-- JDBC 驱动程序类 -->
   <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

   <!-- Assume test is the database name -->
   <!-- 数据库实例的 JDBC URL -->
   <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>

   <!-- 数据库用户名 --> 
   <property name="hibernate.connection.username">scott</property>

   <!-- 数据库密码 --> 
   <property name="hibernate.connection.password">tiger</property>

   <!-- 是否显示sql -->
   <property name="hibernate.show_sql">true</property>

   <!-- 是否将sql格式化 -->
   <property name="hibernate.format_sql">true</property>

   <!-- 是否自动在数据库中生成表 -->
   <property name="hibernate.hbm2ddl.auto">update</property>

   <!-- List of XML mapping files -->
   <!-- 下面是映射的类 -->
   <mapping resource="com/cn/cmc/model/Student.hbm.xml"/>

</session-factory>
</hibernate-configuration> 

Student.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping>
   <class name="com.cn.cmc.model.Student" table="STUDENT">

      <id name="id" type="int" column="id">
         <generator class="sequence"/>
      </id>
      <property name="name" column="name" type="string"/>
      <property name="score" column="score" type="float"/>

   </class>
</hibernate-mapping>

hibernate的执行过程

  1. 创建一个sessionfactory对象
  2. 创建一个configuration对象初始化hibernate.cfg.xml配置文件
  3. 创建一个会话session
  4. 开启事物
  5. 执行操作
  6. 提交事物
  7. 关闭session
  8. 关闭sessionfactory对象

功能的实现

初始化配置:

static {
        Configuration config = new Configuration().configure() ;
        //sessoinFactory = config.buildSessionFactory() ;
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();

        sessionFactory = config.buildSessionFactory(serviceRegistry) ;
    }

添加:

public void addStudent(Student student) {
        // TODO Auto-generated method stub
        Session session = sessionFactory.openSession() ;

        Transaction transaction = session.beginTransaction() ;

        session.save(student) ;

        transaction.commit();

        session.close() ;
        sessionFactory.close();
    }

删除:

public void addStudent(Student student) {
        // TODO Auto-generated method stub
        Session session = sessionFactory.openSession() ;

        Transaction transaction = session.beginTransaction() ;

        Student student = (Student) session.get(Student.class, id) ;
        session.delete(student);

        transaction.commit();

        session.close() ;
        sessionFactory.close();
    }

更新:

Session session = sessionFactory.openSession() ;

        Transaction transaction = session.beginTransaction() ;

        session.update(student);

        transaction.commit();

        session.close() ;
        sessionFactory.close();

测试

插入:

Student student = new Student() ;

        student.setId(100001);
        student.setName("cmc");
        student.setScore(100);

        StudentDao stdDao = new StudentDao() ;
        stdDao.addStudent(student);

删除:

StudentDao stdDao = new StudentDao() ;
        stdDao.delStudent(1);

更新:

StudentDao stdDao = new StudentDao() ;
stdDao.update(student);

猜你喜欢

转载自blog.csdn.net/u013634252/article/details/80735981