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+struts1的增删查改 详细代码

  • 2013年09月26日 17:02
  • 9.12MB
  • 下载

Struts1 Spring Hibernate实现增删改查小项目

  • 2017年12月19日 23:00
  • 19.25MB
  • 下载

Hibernate对于用户表增删该查的实现

1、使用的Hibernate的版本 hibernate-distribution-3.6.0.Final 2、引入的jar文件 hibernate3.jar核心  +  required 必须引...
  • zbw18297786698
  • zbw18297786698
  • 2016年07月11日 15:26
  • 1317

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

转载请注明:http://blog.csdn.net/uniquewonderq 增:sava 删:delete 改:update 查:get/load(查询单个记录)...
  • uniquewonderq
  • uniquewonderq
  • 2015年06月25日 14:21
  • 1567

Hibernate_单表CRUD 对于单独一个表的增删改查

  • 2011年08月18日 15:27
  • 5.75MB
  • 下载

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

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

快速开发:单表增删改查

在Web页面上展现数据库中的一张表,实现了对单表的数据库查询、增加与删除功能操作,并且实现了分页查询,效果如下图所示。 查询与结果效果图       录入与修改表单效果图:   一、创建数...
  • huo_yun
  • huo_yun
  • 2015年05月05日 11:09
  • 3614

Hibernate单表操作

Hibernate单表的CRDU save() get/load() —— get在被调用之后,立刻向数据库发送sql语句 load被调用后会返回一个代理对象,改代理对象只保存了实体对象的id, 直到...
  • u013899738
  • u013899738
  • 2016年04月22日 11:45
  • 282

Hibernate---单表操作

Hibernate---单表操作 1、单一主键 ·assigned 由java应用程序负责生成(手工赋值)。 ·native 由底层数据库自动生成标示符,如果是MyS...
  • zry112233
  • zry112233
  • 2016年04月09日 10:38
  • 186

Hibernate对单表的CRUD操作

在上篇博客配置完开发环境后,现在是在JUnit中测试CRUD方法的,话不多说,我们来看看代码如何实现的, 1.增 @Test public void testSave() { Student ...
  • qq_26624661
  • qq_26624661
  • 2016年08月11日 15:50
  • 336
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate对单表增删改查(CRUD)
举报原因:
原因补充:

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