get and load difference 2
get and load difference 1
Hibernate单表操作CRUD实例
保存:session的save方法。
修改:session的update方法。
删除:session的delete方法。
查询:session的get/load方法(查询单个记录)。
session.get(类对象(Student.class),要查询的主键(1))。
参数中提示的 Class arg0 表示要传入 类对象 arg0 ,Class 表示的是类型是 Class,也就是 类类型。
get与load的区别
1、 在不考虑缓存的情况下,get方法会在被调用之后立即向数据库发出sql语句,并返回持久化对象,而load方法会在被调用之后返回一个代理对象,该代理对象只保存了实体对象的id(主键),直到真正使用对象的非主键属性时才会发出sql语句。
2、 如果要查询的数据不存在,get方法返回null,load方法抛出异常org.hibernate.ObjectNotFoundException
Hibernate单表操作CRUD实例
保存:session的save方法。
修改:session的update方法。
删除:session的delete方法。
查询:session的get/load方法(查询单个记录)。
session.get(类对象(Student.class),要查询的主键(1))。
session.load(类对象(Student.class),要查询的主键(1))。
get和load的区别:
第一个区别:在不考虑缓存的情况下,get方法会在调用之后立即向数据库发出sql语句(不管是否使用该对象,它都会立刻发出sql语句)。直到使用对象的非主键属性时才会发出sql语句。
第二个区别:get方法会在调用之后立即返回持久化对象。load方法会在调用后返回一个代理对象,该代理对象只保存了实体对象的主键Id。
获得类对象的名字:(反射机制)s.getClass().getName()。
第三个区别:查询数据库不存在的数据时,get方法返回null,load方法抛出异常org.hibernate.ObjectNotFoundException。
get与load的区别
1、 在不考虑缓存的情况下,get方法会在被调用之后立即向数据库发出sql语句,并返回持久化对象,而load方法会在被调用之后返回一个代理对象,该代理对象只保存了实体对象的id(主键),直到真正使用对象的非主键属性时才会发出sql语句。
2、 如果要查询的数据不存在,get方法返回null,load方法抛出异常org.hibernate.ObjectNotFoundException
get和load区别2
get和load的区别
第二个区别
get和load的区别
hibernate 单表操作实例
get和load的区别
get与load的区别
get与load的区别
get与load的区别1
单表CRUD操作实例
hibernate-单边查询get、load的区别
hibernate-单边查询get、load的区别
crud测试
用get好一点 感觉
证明load方法返回的是代理对象
get和load的区别2
get和load方法区别1
Serializable arg1 对应主键
总结: 0.Junit类的执行顺序是@Before(初始化方法)|@Test(测试方法)|@After(关闭资源) 任何想要测试的方法都写在@Test中,注意!区分大小写的,首字母必须大写 一般@After都是destory()方法,用于关闭数据及一些善后操作。 1.刚开始插入数据,需要将cfg.xml文件里面的hbm2ddl.auto改为create,而不影响表结构的则用update.【create会覆盖原来的表而upadte只是更新表】 2.关于testSaveStudents里面的几个问题: 2.1当hbm.xml文件中的<generator class="native"></generator>为native时,不管你给setId设置任何值都不起作用,因为他是根据你本地的数据库来决定的,如果是mysql就是increment自动增长赋值(从1开始),若是oracle则是采用序列赋值。 2.2自动提交事务的写法 session.doWork(new Work(){ @Override public void execute() throws SQLException{ Connetcion.setAutoCommit(true);//自动提交事务 } }); 【注】使用了自动提交事务,就不需要开启事务[transcation = seesion.beginTransaction();]以及提交事务[transaction.commit();] 3.如果不是自动提交事务,需要开启事务以及提交。因为没有提交的话,他只是保存到Session对象中而没有提交到数据库中,所以数据库中的信息是没有变化的,所以删、改都需要开启事务才行!! 【如果只进行保存操作,自动提交事务即可。若还需要其他的操作,还是需要在外面开启事务对象】 4.get和load的区别 4.1 get是马上提交并返回信息,打不打印s都会返回信息 而load需要打印s才能返回信息。【注:如果你需要s的完整信息,需要在 stuents类中去重写toString()方法即可】 4.2 当没有数据返回时,get返回null,load会报错。
单表操作之get与load的区别
get方法不考虑缓存,立即返回持久化对象;load返回代理对象