Hibernate增删改查

1.     增删改

package com.bjsxt.test;

import java.io.Serializable;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import org.junit.Before;

import org.junit.Test;

 

import com.bjsxt.pojo.Stu;

 

/**

 * @ClassName:TestHibernate

 * @Description: 使用单元测试

 * @author mengqx

 * @date 2017831

 */

 

public class TestHibernate {

       private Configuration configuration = null;

       private SessionFactory sessionFactory = null;

       private Session session = null;

 

       @Before

       public void init() {

              // 读取配置文件

              configuration = new Configuration().configure("hibernate.xml");

              // 创建会话工厂

              sessionFactory = configuration.buildSessionFactory();

              // 创建session 会话

              session = sessionFactory.openSession();

              System.out.println(session);

       }

 

       @Test

       public void testHibernate() {

              // 调用session中的方法了。

              Stu stu = (Stu) session.get(Stu.class, 2);

 

              System.out.println(stu);

 

              session.close();

       }

 

       /**

        *

        * @Description: 添加数据 hibernate:只要是操作DML语言都要开启事务。

        * @author mengqx

        * @date 2017831

        */

       @Test

       public void add() {

              // 声明要添加的对象

              Stu stu = new Stu(210, "施瓦辛格12", "1324");

              // 需要开启事务

              Transaction transaction = session.beginTransaction();

              Serializable save = null;

              try {

                     save = session.save(stu);

                     // 提示事务

                     transaction.commit();

              } catch (Exception e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

                     // 回滚事务

                     transaction.rollback();

              } finally {

                     session.close();

              }

              System.out.println(save + "------------");

       }

 

       /**

        *

        * @Description: hibernate 在更新的时候,是根据id进行更新,并且会对此id所对应的数据,所有字段都进行修改。

        * @author mengqx

        * @date 2017831

        */

       @Test

       public void update() {

              // 知道要修改的对象。

              Stu stu = new Stu();

              stu.setId(210);

              stu.setPwd("555555");

              stu.setName("阿米尔汗-帅!");

              // 开启事务

              Transaction transaction = session.beginTransaction();

              // 更新数据

              try {

                     session.update(stu);

                     // 提交事务

                     transaction.commit();

              } catch (Exception e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

                     transaction.rollback();

              } finally {

                     session.close();

              }

       }

 

       @Test

       public void delete() {

              // 创建要删除的对象

              Stu stu = new Stu();

              stu.setId(210);

              // 开启事务

              Transaction transaction = session.beginTransaction();

              // 删除数据

              try {

                     session.delete(stu);

                     transaction.commit();

              } catch (Exception e) {

                     // TODO Auto-generated catch block

                     e.printStackTrace();

                     transaction.rollback();

              } finally {

                     session.close();

              }

 

       }

 

}

 

2.     OID查询

根据主键ID进行查询:get,load

package com.bjsxt.test;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

import org.junit.Before;

import org.junit.Test;

 

import com.bjsxt.pojo.Stu;

 

/**

 * @ClassName:THibernate

 * @Description:

 * @author mengqx

 * @date 2017年8月31日

 */

 

public class THibernate {

 

       private Configuration configuration = null;

       private SessionFactory sessionFactory = null;

       private Session session = null;

 

       @Before

       public void init() {

              // 读取配置文件

              configuration = new Configuration().configure("hibernate.xml");

              // 创建会话工厂

              sessionFactory = configuration.buildSessionFactory();

              // 创建session 会话

              session = sessionFactory.openSession();

              System.out.println(session);

       }

 

       @Test

       public void hget() {

              // get 方法 第一个参数传递类的字节码文件,第二个参数传递要查询的id值。

              // get 方法默认返回值是Object, 我们可以通过强制类型转换成我们所需要的类

              Stu stu = (Stu) session.get(Stu.class, 2);

              // 关闭会话

              session.close();

              System.out.println(stu);

       }

 

       /**

        *

        * @Description: get方法和load方法区别是啥? 使用get的时候,如果将会话关闭之后,则数据会依然存在。

        *               使用load的时候,将会话关闭之后,则数据不会存在。 延时加载的问题。

        * @author mengqx

        * @date 2017年8月31日

        */

       @Test

       public void hload() {

              // load 方法 第一个参数传递类的字节码文件,第二个参数传递要查询的id值。

              // load 方法默认返回值是Object, 我们可以通过强制类型转换成我们所需要的类

              Stu stu = (Stu) session.load(Stu.class, 2);

              // 关闭会话

              session.close();

              System.out.println(stu);

       }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值