【Hibernate】通过Session 操作数据库数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CocoWu892/article/details/88632397

Hibernate是一种持久层框架。

定义角色POJO(Plain Ordinary Java Object )

public class Role implements java.io.Serializable {
    private Integer id;
    private Srting roleName;
    private Srting note;
    /** setter and getter **/
}

Hibernate映射文件

<?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>
   <class name="com.Pojo.Role" table="t_role">
       <id name = "id" type="java.lang.Integer">
            <column name="id" />
            <generator class="identity" />
       </id>
       <property name = "roleName" type="string">
          <column name="role_name" length="60" not-null="true" />
       </property>
       <property name = "note" type ="string">
          <column name ="note" length="512" />
       </property>
    </class>
</hibernate-mapping>

Hibernate 通过Session操作数据库数据

Session session = null;
Transaction tx = null;
try{
    // 打开Session
    //调用Hibernate框架中的Session接口并打开接口
    session = HibernateUtil.getSessionFactory().openSession();
    // 事务
    tx = session.beginTransaction(); // 开始执行事务
    //POJO
    Role role = new Role(); // 实例化 角色Role
    role.setId(1);          // 设置并封装角色的相关数据
    role.setRoleName("rolename1");
    role.setNote("note1");
    session.save(role);// 保存,将封装的对象存储到session中 
    Role role2 = (Role) session.get(Role.class,1);// 查询,通过实体的信息在session中进行查询
    role2.setNote("修改备注");  
    session.update(role2); // 在Session中存储role2,??? Session中还存在role1吗? A:有
    System.err.println(role2.getRoleName());// 将role2的信息输出
    session.delete(role2);//删除
    tx.commit();//提交事务
    
 }catch (Exception ex)  {
    if ( tx != null && tx.isActive()) {
         session.close();
    }
 }

    我们没有看到SQL语句,因为这里操作的对象是实体,我们将实体存储到Session中,可以save(),delete(),get(),update()对象相应的信息,Hibernate会根据映射关系来生成对应的SQL,从而起到操纵的目的。

猜你喜欢

转载自blog.csdn.net/CocoWu892/article/details/88632397
今日推荐