ITPub博客

首页 > IT职业 > IT图书 > 我的hibernate学习记录

我的hibernate学习记录

IT图书 作者:huntwu 时间:2021-09-09 09:06:12 0 删除 编辑
  1. 导入相关jar包
  2. 创建实体类,实体类要有一个唯一标识
  3. 在实体类所在的包创建后缀名为hbm.xml的hibernate映射文件,导入头部约束:
    
    <!-- name属性:实体类的完整类名
        table属性:实体类对应的表名 --><!-- id标签表示唯一标识   name属性:实体类中的命名
                        column属性:数据表中字段名 --><!-- class属性:native代表自动增长 --><!-- 实体类其余成员变量 -->
  4. 在src目录下创建名为hibernate.cfg.xml的配置文件

<!-- 连接数据库的配置 -->com.mysql.jdbc.Driverjdbc:mysql://localhost:3306/hibernateroot1<!-- 在控制台输出sql语句 -->true<!-- 格式化sql语句 -->true<!-- 如果表不存在即创建,如果存在即更新 -->update<!-- 映射文件配置 -->
  1. 创建测试类
public class HibernateDemo1 {
    @Test
    public void Update() {
        //加载hibernate核心配置文件
        Configuration cfg = new Configuration();
        cfg.configure();

        //创建sessionFactory对象
        SessionFactory sessionFactory = cfg.buildSessionFactory();

        //使用sessionFactory对象创建session对象
        Session session = sessionFactory.openSession();

        //开启事务
        Transaction ts = session.beginTransaction();

        //具体增删改查操作
        User user = new User();
        user.setName("melon");
        user.setPassword("1");
        //调用session对象的对应方法
        session.save(user);

        //提交事务
        ts.commit();

        //关闭资源
        session.close();
        sessionFactory.close();
    }
}

测试完成
图片描述
图片描述




  • hibernate中对象的三种状态:瞬时态、持久态、托管态。
    瞬时态:新new出来的对象,在数据库没有id值,和session没有关联
    持久态:对象已经存放到数据库里边,和session有关联
    托管态:对象有id值,和session没有关联

    hibernate存在一级缓存,当第一次在数据库查询到信息后,自动存放到缓存当中,之后再查询直接从缓存获取到相关信息
    持久态会自动更新数据库,不用调用update方法。


  • 获得与本地绑定的session
    (1)在hibernate核心配置文件中配置
    thread
    (2)调用sessionFactory里面的getCurrentSession方法获得与本地线程绑定的session
    Session session = sessionFactort.getCurrenSession();




hibernate配置一对多关系

<!-- 
    父表配置
    set标签里面name属性写对应子表的set名称 
        cascade属性填sava-update,delete代表级联保存、删除
-->
<!-- key标签里面column属性填子表的外键字段名 --><!-- one-to-many标签里面class属性填子表的类名全路径 --><!-- 
    子表配置
    name属性填实体类里面父表的对象名
    class属性填父表对象的全路径
    column属性填外键名称
 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2387/viewspace-2808087/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-15

  • 博文量
    94
  • 访问量
    737