hibernate学习笔记02---hibernate的几个方法

本文介绍了Hibernate框架的基本要求,包括类的设计原则、Session的操作方法、HQL查询方式、命名参数的使用、分页查询以及Criteria条件查询等核心知识点。
1、hibernate管理的类要求:
	(1)该类至少有一个无参的构造方法;
	(2)类必须是非final的,否则懒加载无法使用
	
2、session的几个方法:
	get:只能根据id来得到一条记录
		......
		User user=session.get(userClass,id);
		.....
	load:只能根据id来得到一条记录
		User user=session.load(userClass,id);
	区别:load的懒加载的,执行了get后会里面访问数据库,进行查询的;
			而load方法执行了后不里面去方法数据库,而是在使用时才访问;
			如:User user=session.load(userClass,id);----执行了他不访问数据库
				System.out.println(user.getName());----执行他是才访问数据库;
			ps:用load时会先创建出一个User对象,所以即使不访问数据库,此时
				也会有个user对象,及user不会为空;
	persist:保存
		persist和save的区别是:
			在没有开启事务的时候用save方法,他会向数据库中插入记录,但是
				因为没有事务提交,所以自动回滚,最终数据库中没有该记录;
			而persist,如果没有开启事务,则根本不会向数据 库中插入记录。
	对象的几个状态:
		(1)瞬时状态:
				User user=new User();---此时对象于session和数据库都没关联
		(2)持久状态:
				session.save(user);---此时于session和数据库都有关联
		(3)脱管状态:
				session.close();
				此时的user从session中脱管---此时于session没有关联,但数据库中有对象记录

3、hql查询:
	get,load只能根据id查询,如果根据name查怎get,load是不可以的;
	hql是针对对象的查询,而sql是针对表的查询
		String hql="from User as user where user.name=?";----User 类不是表
		//query类似JDBC中的PreparedStatement(PreparedStatement ps=conn.prepareStatement(sql))
		Query query=session.createQuery(hql);
		query.setString(0,"lid");----下标从零开始,JDBC从1开始
		List list=query.list();----list()的作用类似于JDBC的executQuery();
		//User user=(User)query.uniqueResult();---如果确定只有一个结果,可以用该方法
	
4、hql的命名参数:
	假设:String hql="from User as user where user.name=? and user.age=?....."
		像上面假设有多个? 我们在为?赋值时是必须对应的,如果?很多或者顺序不小心变了
		,这些都很很容易造成错误;
	解决办法:
		String hql="from User as user where user.name=:name and user.age=:a";
		Query query=session.createQuery(hql);
		query.setString("name","lid");
		query.setInt("a",12);
		这样只要变量名称对应上就可以,不用关心顺序;
		
5、分页用到的两个方法:
		query.setFirstResult(0);---从哪一条开始取数据
		query.setMaxResult(100);---取多少条数据
		底层就是用的mysql或者oracle等内部的分页,如mysql则是limit(0,100)
		
6、Criteria---条件查询:
		Criteria c=c.createQuery(User.class);
		c.add(Restrictions.eq("name","lid"));---添加约束条件,让name属性等于"lid"
		c.add(Restrictions.gt("birthday",new Date()));---生日大于当前时间的
		c.add(Restrictions.lt("age",12))---年龄小于12的
		List list=c.list();
		//User user=(User)c.uniqueResult();
	
	
				
				

代码下载地址: https://pan.quark.cn/s/bc087ffa872a "测控电路课后习题详解"文件.pdf是一份极具价值的学术资料,其中系统地阐述了测控电路的基础理论、系统构造、核心特性及其实际应用领域。 以下是对该文献的深入解读和系统梳理:1.1测控电路在测控系统中的核心功能测控电路在测控系统的整体架构中扮演着不可或缺的角色。 它承担着对传感器输出信号进行放大、滤除杂音、提取有效信息等关键任务,并且依据测量与控制的需求,执行必要的计算、处理与变换操作,最终输出能够驱动执行机构运作的指令信号。 测控电路作为测控系统中最具可塑性的部分,具备易于放大信号、转换模式、传输数据以及适应多样化应用场景的优势。 1.2决定测控电路精确度的关键要素影响测控电路精确度的核心要素包括:(1)噪声与干扰的存在;(2)失调现象与漂移效应,尤其是温度引起的漂移;(3)线性表现与保真度水平;(4)输入输出阻抗的特性影响。 在这些要素中,噪声干扰与失调漂移(含温度效应)是最为关键的因素,需要给予高度关注。 1.3测控电路的适应性表现测控电路在测控系统中展现出高度的适应性,具体表现在:* 具备选择特定信号、灵活实施各类转换以及进行信号处理与运算的能力* 实现模数转换与数模转换功能* 在直流与交流、电压与电流信号之间进行灵活转换* 在幅值、相位、频率与脉宽信号等不同参数间进行转换* 实现量程调整功能* 对信号实施多样化的处理与运算,如计算平均值、差值、峰值、绝对值,进行求导数、积分运算等,以及实现非线性环节的线性化处理、逻辑判断等操作1.4测量电路输入信号类型对电路结构设计的影响测量电路的输入信号类型对其电路结构设计产生显著影响。 依据传感器的类型差异,输入信号的形态也呈现多样性。 主要可分为...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bzuld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值