Hibernate-常用API

抽取工具类

//Util
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
    public static final SessionFactory sessionFactory;
        /*只需加载一次所以static*/
    static {
        //1. 加载Hibernate核心配置文件
        Configuration configure = new Configuration().configure(); //就去找配置文件

        //2. 创建sessionFactory
        sessionFactory = configure.buildSessionFactory();
    }

    public static Session openSession(){
        //3. 获取session
        Session session = sessionFactory.openSession();
        return session;
    }
}

保存

@org.junit.Test
    public void saveDemo()
    {
        Session session = HibernateUtil.openSession();

        Students su = new Students();
        su.setName("Tahsi");
        su.setAge(6654);
        su.setId(5);

        //保存
        session.save(su);

        //释放
        session.close();
    }

查询

@org.junit.Test
    public void queryOne(){
        Session session = HibernateUtil.openSession();

        // 查询一条
        Students students = session.get(Students.class, 11); //ID为1的同学消息
        System.out.println(students);

        session.close();
    }

@org.junit.Test
    public void Test7(){
        Session session = HibernateUtil.openSession();
        //开启实务
        Transaction transaction = session.beginTransaction();

        //HQL
        Query query = session.createQuery("from  Demo1.Students" );

        //Query以list方法访问查询的全部实例
        List<Students> list = query.list();
        //遍历查询的全部结果
        for(Students s: list){
            System.out.println(s);
        }

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

        session.close();
    }

/*原生SQL*/

@org.junit.Test
    public void Test8(){
        Session session = HibernateUtil.openSession();
        //开启实务
        Transaction transaction = session.beginTransaction();

        NativeQuery sqlQuery = session.createSQLQuery("select * from students");
        List<Object[]> list = sqlQuery.list();
        for(Object[] objects: list){
            System.out.println(Arrays.toString(objects));
        }

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

        session.close();
    }

修改

@org.junit.Test
    public void updateDemo(){
        Session session = HibernateUtil.openSession();
        //开启实务
        Transaction transaction = session.beginTransaction();


        //更新操作
        /*
         * 注意 如果没有指定其他的字段 会把其他的字段设置为null
         * */
        Students su = new Students();
        su.setId(1);
        su.setName("李四");
        su.setAge(15);

        session.update(su);

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

        session.close();
    }
@org.junit.Test
    public void Test4(){
        Session session = HibernateUtil.openSession();
        //开启实务
        Transaction transaction = session.beginTransaction();


        //更新操作
        Students s = session.get(Students.class, 1);
        s.setName("tao 666");
        session.update(s);


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

        session.close();
    }

删除

@org.junit.Test
    public void Test5(){
        Session session = HibernateUtil.openSession();
        //开启实务
        Transaction transaction = session.beginTransaction();


        //删除操作
        Students s = session.get(Students.class, 1);
        session.delete(s);


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

        session.close();
    }

保存或更新

@org.junit.Test
    public void Test6(){
        Session session = HibernateUtil.openSession();
        //开启实务
        Transaction transaction = session.beginTransaction();


       Students s = new Students();
       s.setName("mySQL");
       session.saveOrUpdate(s);


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

        session.close();
    }

  转载请注明: linis Hibernate-常用API

 上一篇
Hibernate-主键生成策略 Hibernate-主键生成策略
概要 主键生成策略 持久化 一级缓存 事务管理 主键生成策略 持久化是什么 将内存中的一个对象持久化到数据库的过程。Hibernate框架是一个持久化的框架 持久化类 Java类+映射文件 编写步骤 对持久化类提供一个无参的构造方
2019-04-23
下一篇 
Hibernate-配置 Hibernate-配置
什么是持久化技术 持久化技术。就是把数据保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在关系型数据库中。 什么是ORM 对象关系映射。 通过ORM我们可以通过类的方式去操作数据库,而不用原生的SQL语句。通过把表
2019-04-23
  目录