hibernate对单表增删改查(CRUD)

转载 2016年08月28日 15:22:50

增删改查:

  • save
  • update
  • delete
  • get/load(查询单个记录)
import java.util.Date;


import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

//测试类
public class StudentsTest {

    private SessionFactory sessionFactory;
    private Session session;
    private Transaction transaction;

    @Before
    public void init(){  //初始化
        //创建配置对象
        Configuration config=new Configuration().configure();
        //创建服务注册对象
        ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
        //创建会话工厂对象
        sessionFactory=config.buildSessionFactory(serviceRegistry);
        //会话对象,打开会话
        session=sessionFactory.openSession();       
        //打开事务
        transaction=session.beginTransaction();
    }

    @After
    public void destory(){ //释放资源
        //提交事务
        transaction.commit();
        //关闭会话
        session.close();
        //关闭会话工厂
        sessionFactory.close();
    }

    @Test
    public void testSaveStudents(){
        //生成学生对象
//      Students s=new Students(1,"张三丰","男",new Date(),"武当山");
        Students s=new Students();
//      s.setSid(1);  //native:主键自动增长,无须赋值;若强制赋值无效果
        s.setSname("张三丰");
        s.setGender("男");
        s.setBirthday(new Date());
//      s.setAddress("武当山");    
        Address address=new Address("710068","02988567123","西安市");
        s.setAddress(address);      
        //保存对象进入数据库
        session.save(s);        
    }

    @Test
    public void testGetStudents(){  //查:get方法
        Students s=(Students)session.get(Students.class, 1); //第一个参数表示类对象(即查询的表所对应的类对象,本例查询students表,对应Students类);第二个参数是标识符,即所要查询的记录对应的主键。
        System.out.println(s);
    }

    @Test
    public void testLoadStudents(){  //查:load方法
        Students s=(Students)session.load(Students.class, 1); //第一个参数表示类对象(即查询的表所对应的类对象,本例查询students表,对应Students类);第二个参数是标识符,即所要查询的记录对应的主键。
        System.out.println(s);
    }

    @Test
    public void testUpdateStudents(){  //更新
        Students s=(Students)session.get(Students.class, 1); //第一个参数表示类对象(即查询的表所对应的类对象,本例查询students表,对应Students类);第二个参数是标识符,即所要查询的记录对应的主键。
        s.setGender("女");
        session.update(s);
    }

    @Test
    public void testDeleteStudents(){ //删除
        Students s=(Students)session.get(Students.class, 1); //第一个参数表示类对象(即查询的表所对应的类对象,本例查询students表,对应Students类);第二个参数是标识符,即所要查询的记录对应的主键。
        session.delete(s);
    }
}

hibernate.cfg.xml:

<property name="hbm2ddl.auto">update</property>

执行save,数据库:
这里写图片描述
查询get方法,控制台:
这里写图片描述
查询load,控制台:
这里写图片描述
执行update,数据库:
这里写图片描述
执行delete,数据库:
这里写图片描述


get和load的区别:
一:
这里写图片描述
get:立刻发送sql语句,返回的就是本身的持久化类的对象。
load:不立刻发送sql语句,返回代理对象,只有真正使用这个对象时才发送sql语句。
二:
这里写图片描述

@Test
    public void testGetStudents(){  //查:get方法
        Students s=(Students)session.get(Students.class, 100); //第一个参数表示类对象(即查询的表所对应的类对象,本例查询students表,对应Students类);第二个参数是标识符,即所要查询的记录对应的主键。
//      System.out.println(s.getClass().getName());  //打印对象的类对象的名字
        System.out.println(s);
    }

    @Test
    public void testLoadStudents(){  //查:load方法
        Students s=(Students)session.load(Students.class, 100); //第一个参数表示类对象(即查询的表所对应的类对象,本例查询students表,对应Students类);第二个参数是标识符,即所要查询的记录对应的主键。
//      System.out.println(s.getClass().getName());  //打印对象的类对象的名字
        System.out.println(s);
    }

Hibernate单表操作(五)——增删改查操作实例

转载请注明:http://blog.csdn.net/uniquewonderq 增:sava 删:delete 改:update 查:get/load(查询单个记录)...

Hibernate--单表的增删改查

语法: 如果利用Hibernate修改数据库时,需要使用事务处理,一个事务提交时才真正将修改过的记录更新到数据库中。 1、增加记录 Session session=HibernateSessio...
  • xanlv
  • xanlv
  • 2017年03月05日 15:38
  • 265

【框架】[Hibernate]利用Hibernate进行单表的增删改查-Web实例

转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 前面两篇博客已经将Hibernate的基础知识讲解得差不多了,差不多到写实例的时候了...

单表交易增删改查

  • 2014年07月25日 11:30
  • 2.09MB
  • 下载

Hibernate基本概念与CRUD(增删改查)

一、开发流程 Hibernate的基本概念和CURD(增删改查) (1)Domain类 (2)映射文件 (3)表create table user() 开发流程:1、由Domain objec...

SSM+BootGrid分页 单表增删改查

  • 2017年05月08日 21:35
  • 6.42MB
  • 下载

D7 单表增删改查

  • 2016年07月30日 16:06
  • 388KB
  • 下载

Hibernate学习-04:CRUD(增删改查)操作之根据主键查询

上一讲的入门案例,我们使用了Hibernate框架的添加功能,此处不再赘述。这一讲我们继续介绍Hibernate的查询、更新、删除操作。 准备工作:实体类、数据库准备同上一讲入门案例 1、查询 1.1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate对单表增删改查(CRUD)
举报原因:
原因补充:

(最多只允许输入30个字)