• Hibernate的getTransaction()和beginTransaction()


    session.getTransaction()只是根据session获得一个Transaction实例,但是并没有启动它 

    session.beginTransaction()在获得一个Transaction后调用其begin()方法

    (1)

    session = HibernateUtil.getSession();//这是开启Session的操作
    session.beginTransaction();//这是开启Transaction的操作
    session.save(user);//这正是把数据放入一级缓存session中的操作
    session.getTransaction().commit();//此处才是真正与数据库交互的语句

    (2)

    Session session=HibernateTools.getSession();
    Transaction tx=session.beginTransaction();

    session.save(user);

    tx.commit();
    session.close();

    如:

    public static void main(String[] args) throws ParseException {
    //获取配置文件
    Configuration configuration = new Configuration().configure();
    //注册服务对象
    StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
    StandardServiceRegistry serviceRegistry = serviceRegistryBuilder.applySettings(configuration.getProperties()).build();
    //获取SessionFactory
    SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
    //获取session
    Session session = sessionFactory.openSession();
    //开启事务
    session.beginTransaction();
    //************开始操作*************//
    //1. 利用 get 方法获取 id 为 1 的用户数据
    Commodity getCommodity = (Commodity) session.get(Commodity.class, 1);
    System.out.println("创建日期:" + getCommodity.getCreateDate() + "描述:" + getCommodity.getDescribe() + "修改日期:" + getCommodity.getModifyDate() + "名称:" + getCommodity.getName());

    // Date date = new Date(0);
    String stringdate = "2019-05-07";
    Date date = new SimpleDateFormat("YYYY-MM-DD").parse(stringdate);

    //2.增加商品
    // Commodity newCommodity = new Commodity(date,"电器1",date,"电饭锅2");
    // session.save(newCommodity);

    //3.删
    // Commodity getCommodity1 = (Commodity) session.load(Commodity.class, 2);
    // session.delete(getCommodity1);
    // session.getTransaction().commit();

    //4.改
    // Commodity getCommodity2 = (Commodity) session.get(Commodity.class, 1);
    // getCommodity2.setName("洗脸盆");
    // session.update(getCommodity2);
    // session.getTransaction().commit();
    //************结束操作*************//


    //提交事务
    session.getTransaction();
    //关闭session
    session.close();
    //关闭SessionFactory
    sessionFactory.close();
    }

    再如:

    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.boot.registry.StandardServiceRegistry;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;

    import online.shixun.shop.model.User;

    public class HibernateDemo {

    public static void main(String[] args) {
    // 获取配置文件
    Configuration configuration = new Configuration().configure();
    // 注册服务对象
    StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder();
    StandardServiceRegistry serviceRegistry = serviceRegistryBuilder.applySettings(configuration.getProperties()).build();
    // 获取 SessionFactory
    SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
    // 获取 Session
    Session session = sessionFactory.openSession();
    // 开启事务
    session.beginTransaction();

    //***************开始数据操作***************//

    //1. 利用 get 方法获取 id 为 1 的用户数据
    User getUser = (User) session.get(User.class, 1);
    System.out.println("Get 用户名/密码/年龄:" + getUser.getName() + "/" + getUser.getPassword() + "/" + getUser.getAge());

    //2. 利用 load 方法获取 id 为 1 的用户数据
    User loadUser = (User) session.load(User.class, 1);
    System.out.println("Load 用户名/密码/年龄:" + loadUser.getName() + "/" + loadUser.getPassword() + "/" + loadUser.getAge());

    //3. 利用 save 方法新增用户数据(执行完成以下语句,利用数据库客户端工具查询表中是否有新数据增加)
    User newUser = new User("武汉", "innovaee", 16);
    session.save(newUser);

    //4. 利用 saveOrUpdate 方法,修改 getUser 数据
    getUser.setName("轻实训!");
    session.saveOrUpdate(getUser);

    //5. 利用 delete 方法删除 getUser 数据
    session.delete(getUser);

    //***************结束数据操作***************//

    // 提交事务
    session.getTransaction().commit();
    // 关闭 Sessin
    session.close();
    // 关闭 SessionFactory
    sessionFactory.close();
    }
    }

  • 相关阅读:
    每日总结
    体温登记app(大年初一要收的作业)慢慢更,这个写完了
    2021/01/31周学习总结
    2021/01/24周学习总结
    从小工到专家
    构建之法阅读笔记
    2021/01/17周学习总结
    人月神话阅读笔记
    利用Word制作Kindle用的6寸PDF电纸书
    面试题-谈谈封装和抽象的区别(转)
  • 原文地址:https://www.cnblogs.com/yzp666/p/7529092.html
Copyright © 2020-2023  润新知