zoukankan      html  css  js  c++  java
  • 03Hibernate进阶

    1. 实体类的编写规则
      • 实体类中的属性是私有的
      • 私有属性使用公开的set和get方法操作
      • 要求实体类中有属性作为唯一值
      • 实体类属性建议不使用基本数据类型(byte、short、int、long、float、double、boolean、char),使用基本数据类型对应的包装类(Byte、Short、Integer、Long、Double、Boolean、Charater
    2. hibernate主键生成策略
      1 <id name="id" column="uid">
      2    <!-- 3、配置数据库表主键的增长策略 :native:自动增长,uuid:生成GUID主键等等-->
      3    <generator class="native"></generator>
      4 </id>
    3. 实体类操作
       1 package cn.kispine.test;
       2 
       3 import org.hibernate.Session;
       4 import org.hibernate.SessionFactory;
       5 import org.hibernate.Transaction;
       6 import org.hibernate.cfg.Configuration;
       7 import org.junit.Test;
       8 
       9 import cn.kispine.entity.User;
      10 
      11 public class Demo {
      12     @Test
      13     public void testHibernateAdd() {
      14         //第一步:加载hibernate核心配置文件
      15         Configuration cfg = new Configuration();
      16         cfg.configure();
      17         //第二步:创建sessionFactory对象
      18         SessionFactory sessionFactory = cfg.buildSessionFactory();
      19         //第三步:使用sessionFactory对象创建session对象
      20         Session session = sessionFactory.openSession();
      21         //第四步:开启事务
      22         Transaction tx= session.beginTransaction();
      23         //第五步:写具体逻辑CRUD操作
      24         User user = new User();
      25         user.setAddress("克利夫兰");
      26         user.setPassword("勒布朗");
      27         user.setUsername("James");
      28         
      29         session.save(user);
      30         //第六步:提交事务
      31         tx.commit();
      32         //第七步:关闭释放资源
      33         session.close();
      34         sessionFactory.close();
      35     }
      36 
      37     @Test
      38     public void testHibernateGet() {
      39         Configuration cfg = new Configuration();
      40         cfg.configure();
      41         SessionFactory sessionFactory = cfg.buildSessionFactory();
      42         Session session = sessionFactory.openSession();
      43         Transaction tx = session.beginTransaction();
      44         
      45         User user = session.get(User.class,"4028bc2362a5b9770162a5b97aa50000");
      46         System.out.println(user);
      47         
      48         tx.commit();
      49         session.close();
      50         sessionFactory.close();
      51     }
      52     
      53     @Test
      54     public void testHibernateUpdate() {
      55         Configuration cfg = new Configuration();
      56         cfg.configure();
      57         SessionFactory sessionFactory = cfg.buildSessionFactory();
      58         Session session = sessionFactory.openSession();
      59         Transaction tx = session.beginTransaction();
      60         
      61         User user = session.get(User.class,"4028bc2362a5b9770162a5b97aa50000");
      62         user.setPassword("asfaSFFADDF");
      63         
      64         session.saveOrUpdate(user); 
      65         
      66         tx.commit();
      67         session.close();
      68         sessionFactory.close();
      69     }
      70     
      71     @Test
      72     public void testHibernateDelete() {
      73         Configuration cfg = new Configuration();
      74         cfg.configure();
      75         SessionFactory sessionFactory = cfg.buildSessionFactory();
      76         Session session = sessionFactory.openSession();
      77         Transaction tx = session.beginTransaction();
      78         
      79         User user = session.get(User.class,"4028bc2362a5b9770162a5b97aa50000");
      80         
      81         session.delete(user); 
      82         
      83         tx.commit();
      84         session.close();
      85         sessionFactory.close();
      86     }
      87 }
      CRUD

      实体类的三种状态:瞬时态、持久态、托管态

      • 瞬时态:对象没有id并且与Session没有关联【new 的一个对象】
      • 持久态:对象有id值并且与session有关联【通过id查询到的对象】
      • 托管态:对象有id值但是与session没有关联
    4. hibernate一级缓存
    5. hibernate的事务操作
  • 相关阅读:
    vue 下拉框单选、多选以及默认值
    python 查询每周最后一个工作日
    微信开发
    win7 实用
    A Mixed Flash Translation Layer Structure for SLC-MLC Combined Flash Memory System
    暑假--升级攻击家庭wifi
    A New 3-bit Programming Algorithm using SLC-to-TLC Migration for 8MBs High Performance TLC NAND Flash Memory
    FTL方面综述
    Linux 脚本
    FTL-SLC&MTC&TLC
  • 原文地址:https://www.cnblogs.com/kispine/p/8757050.html
Copyright © 2011-2022 走看看