hibernate4之实用方法(六)

@Before
	public void init(){
		Configuration configuration = new Configuration().configure();
		ServiceRegistry serviceRegistry = 
				new ServiceRegistryBuilder().applySettings(configuration.getProperties())
				                            .buildServiceRegistry();
		sessionFactory = configuration.buildSessionFactory(serviceRegistry);

		session = sessionFactory.openSession();
		transaction = session.beginTransaction();
	}

	@After
	public void destroy(){
		transaction.commit();
		session.close();
		sessionFactory.close();
	}
	@Test
	public void test(){
	    //session.测试以下方法 如:
	    User entity= new User("BBBB");
	    session.save(entity);
	}

  -------------------- 基本检索、增加、修改、删除操作 --------------------

(1) 根据主键获取实体。如果没有相应的实体,返回 null。

get(entityClass, id);

(2)根据主键获取实体。如果没有相应的实体,抛出异常。

load(entityClass, id);

1.  执行 get 方法: 会立即加载对象.

执行 load 方法, 若不适用该对象, 则不会立即执行查询操作, 而返回一个代理对象

get 是 立即检索, load 是延迟检索.

2.  load 方法可能会抛出 LazyInitializationException 异常

3.  若数据表中没有对应的记录, Session 也没有被关闭.

get 返回 null

load 若不使用该对象的任何属性, 没问题; 若需要初始化了, 抛出异常.

(3)更新实体。

update(entity);

(4)存储实体到数据库。

save(entity);

在调用 save 方法之前, 若对象已经有 id 了, 在 flush 缓存时会发送一条 INSERT 语句且 id 是无效的

(5)存储实体到数据库。

persist(entity);

在调用 persist 方法之前, 若对象已经有 id 了, 则不会执行 INSERT, 而抛出异常

(6)增加或更新实体。

saveOrUpdate(entity);

(7) 删除指定的实体。

delete(entity);

若 entity 在数据表中没有对应的记录, 则抛出异常

时间: 2024-12-14 06:22:21

hibernate4之实用方法(六)的相关文章

6个实用方法有效确保WordPress网站数据安全

根据WordPress官方2019年的数据显示,目前全网中33%的网站会采用的是WordPress程序,其主要原因在于这款开源CMS程序易用简单有丰富的主题插件,最为主要的是能保持稳定的更新升级优化.当然,作为目前体量最大的开源CMS程序,肯定也是受到很多的黑客盯着的,我们也经常看到WordPress有安全版本的更新和升级,如果我们是用户你肯定也会升级. 在这篇文章中,我们WordPress课堂将会和大家分享如何有效的确保WordPress网站数据的安全,无论我们是普通的个人博主,还是企业公司运

Android反编译工具介绍与简单实用方法

Android反编译工具介绍与简单实用方法 Android反编译的目的无非就是为了看到APK的xml.资源和代码: 得到代码的方式:直接解压APK文件 --> 得到classes.dex文件 --> 使用 dex2jar classes.dex classes.jar生成jar文件 --> [可选的解压jar文件] -->使用XJad或者JDCompiler查看源代码 得到XML的方式: 方式1:直接解压APK文件 --> 通过axmlprinter工具查看XML文件(这种方

Swiper的简单实用方法

最近项目中有用到一个非常强大的组件idangerous.swiper.js的组件,这个组件能够实现幻灯片的播放效果,而且有各种3D效果,大家可以去试一下,效果很不错的说! 这是这个项目的api文档:http://www.idangero.us/sliders/swiper/api.php GitHub上的地址:https://github.com/nolimits4web/Swiper 具体使用方法(copy的Swiper官网的代码): 首先在页面中引入css和js文件: <link rel=&qu

Objective-C 时间操作实用方法总结

Objective-C 时间操作实用方法总结 根据月头获取月尾日期 /** * GetMonthEndDate * 根据月头获取月尾日期 * * @param monthBegin 月头(yyyy-MM-dd HH:mm:ss) * * @return NSDate / nil */ +(NSDate *) GetMonthEndDate:(NSString *)monthBegin{ if (![monthBegin isEqualToString:@""]){ NSDateForm

C# foreach 实用方法详解

网上查资料,说foreach 不能修改迭代变量,只能访问迭代变量.自己理解也不是很深,通过几个代码进行验证,发现foreach的用法还有点特别 验证方法: 1. 迭代变量 为int int[] argint = { 12,12,12,12,12}; foreach (int item in argint) { item = 100; } 结果:编译不通过,提示item为迭代变量,无法为它赋值: 2. 迭代变量为struct public struct MyStruct { public stri

【原】ios打包ipa的两种实用方法(.app转.ipa)

总结一下,目前.app包转为.ipa包的方法有以下几种: 1.Apple推荐的方式,即实用xcode的archive功能 Xcode菜单栏->Product->Archive->三选一,一般选后两个. 局限性:个人开发一般采用这种方法,但是当一个证书多人使用时就稍显麻烦.一般多人开发时都是采用provisioning profile+P12文件来进行真机调试.上述方法在最后导出ipa包时需要输入appleID,这时还要向团队的其他人要.采用provisioning profile+P12

Access数据库远程连接的实用方法

一般在远程文件夹开启文件共享即可通过像平常一样用连接字符串访问,注意共享的读写权限. 远程(如通过互联网)连接access数据库的示例: 首先,需要使用TCP/IP,ADO及XML(需要安装Microsoft XML 4.0.).注意分服务器和客户端两部分,服务器可以多用户同时连接.(注释:不需要使用RDS或Web服务器). 远程连接access数据库的几个方法: 1建立VPN(Virtual Private Network),这样你的电脑和主机的连接就与局域网无异,然后把服务器中mdb文件所在

详细讲解提高数据库查询效率的实用方法、外键关于性能

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放

bootstrapValidator.js,最好用的bootstrap表单验证插件 简单实用方法

实用方法 1.引入 在有jquery和bootstrap的页面里引入bootstrapValidator.js和bootstrapValidator.css文件 2. 按照bootstrap的表单组件  构建html代码 在表单中,若对某一字段想添加验证规则,默认需要以<div class="form-group"></div>包裹(对应错误提示会根据该class值定位),内部<input class="form-control" /&