Hibernate
Configuration
正如其名,Configuration 类负责管理Hibernate 的配置信息。Hibernate 运行时需要
获取一些底层实现的基本信息,其中几个关键属性包括:
1、数据库URL
2、数据库用户
3、数据库用户密码
4、数据库JDBC驱动类
1、 数据库dialect,用于对特定数据库提供支持,其中包含了针对特定数据库特性的实现,如Hibernate数据类型到特定数据库数据类型的映射等。
当然,还有指定Hibernate映射文件的位置。(*.hbm.xml)。
Hibernate配置有两种方法:
一、 属性文件配置。默认文件名是hibernate.properties。调用代码:
Configuration config = new Configuration();
config.addClass(Book.class);
二、 XML文件配置。默认文件名是hibernate.cfg.xml。
Configuration config = new Configuration().configure();
Session(会话):该接口是Hibernate使用最多的接口。Session不是线程安全的,它代表与数据库之间的一次操作。Session通过SessionFactory打开,在所有的工作完成后,需要关闭:它的概念介于Connection和Transaction之间。我们可以简单的认为它是已经装载对象的缓存或集合的一个独立工作单元。我们有时也称Session为持久化管理器,因为它是与持久化有关的操作的接口。
Hibernate会话并不是线程安全的因此应该被设计为每次只能在一个线程中使用。Hibernate会话与Web层的HttpSession没有任何关系。
Session session = sessionFactory.openSession();
Transaction:事务将应用代码从底层的事务实现中抽象出来——这可能是一个JDBC事务,一个JTA用户事务或者甚至是一个公共对象请求代理结构(CORBA)——允许应用通过一组一致的API控制事务边界。这有助于保持Hibernate应用在不同类型的执行环境或容器中的可移植性。
Transaction trans = session.beginTransaction ();
Query: Query(查询)接口允许你在数据库上执行查询并控制查询如何执行。查询语句使用HQL或者本地数据库的SQL方言编写。
Query query = session.createQuery(“from User”);
private static SessionFactory factory = null;
//先静态 后非静态
static{
try {
Configuration config = new Configuration().configure();
factory = config.buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
}
}
public Session getSession(){
Session sess = factory.openSession();
return sess;
}
Session.createQuery(sql).setString(0,””)
它的参数设置是从0开始的
String sql = "from Book b where b.author = ?) ";
Book book = (Book)session.createQuery(sql).setString(0,"任汝芬").uniqueResult();
只返回一个对象
属性查询
String sql = "select b.bookconcern from Book b where b.amount in (10,35) "
利用 distinct关键字 剔除返回集合中的重复记录
select distinct b.author from Book b where b.amount in (10,35)
都是用get方法 根据id获得对象然后set更新
1. Book b = (Book)session.get(Book.class, new Integer(id));
b.setAuthor("大侠");
session.save(b);
2. UserInfo ui = (UserInfo)this.getHibernateTemplate().get(UserInfo.class,id);
ui.setPassword(pwd);
更新某一个字段
String sql = "update Book set remark = ?";
se.createQuery(sql).setString(0,"很好").executeUpdate();
删除某条记录
se.createQuery(sql).setString(0,"敏").executeUpdate();
查询出降序排列(desc)
String sql = "from Book as b order by b.price desc";
分组查询
b.bookconcern 中的bookconcern必须在聚合函数中
String hql = "select count(b),b.bookconcern from Book b group by b.bookconcern";
List li = new SessionUtil().sort();
Iterator it = li.iterator();
while(it.hasNext()){
Object[] rs = (Object[])it.next();
System.out.println(rs[0]+" "+rs[1]);
}
1 高等教育出版社
2 清华大学出版社
1 天津大学出版社
1 外文出版社
选出出版社数量大于1的记录 (having count(b)>1 挑选出感兴趣的记录
Having子句是针对group by 返回结果集甄选语句
select count(b),b.bookconcern from Book b group by b.bookconcern having count(b)>1
2 清华大学出版社
分享到:
相关推荐
幼儿园小班冬眠动物:该起床了(教学方案).pdf
介绍Hibernate的入门图书,详细讲解了Struts + Spring + Hibernate联合开发的优缺点.
【《让人类冬眠》阅读答案】冬眠的神秘阅读答案.docx
【冬眠动物的隐秘武器阅读答案】冬眠的动物们阅读答案.docx
【冬眠的神秘阅读附答案(2021年安徽省中考语】冬眠的神秘.docx
大熊圣诞不冬眠.pptx
综述了国内外哺乳动物冬眠的研究历史和现状,并从冬眠物种的系统学分布?冬眠的原因及其进化和适应意义入手,概括论述了哺乳动物冬眠的代谢抑制及其能量收益?冬眠代谢抑制的生化及分子生物学机制等方面的研究进展,并...
冬眠合剂[汇编].pdf
熊为什么冬眠-.doc
为什么动物要冬眠.doc
冬眠动物 该起床了.doc
M3S811 4_冬眠控制(Hibernate)
《动物冬眠啦》课件.pptx
熊可以冬眠,,人为什么不行
冬眠对达乌尔黄鼠骨骼肌超微结构的影响,姜山峰,曹晋,目的:研究冬眠对达乌尔黄鼠(Spermophilus dauricus)比目鱼肌和趾长伸肌超微结构的影响。方法:黄鼠分为活跃期(GA)、冬眠期(GH)和出�
山寨夜场:永不冬眠的啤酒市场.doc
冬眠的哺乳动物,不论是在冬眠季节还是非冬眠季节,表现出的体温都是在中枢神经系统调节下产热和散热效应综合作用的结果,其机理和产热特征一直是研究的热点。概括叙述了冬眠哺乳动物在活跃季节、入眠过程以及冬眠季节...
冬眠是一种周期性生理现象,在自然环境条件下,冬眠只是在一定的季节内出现,刺猬的冬眼季节在北京一般自10月初开始至3月底为止,约为6个月。是否冬眠只限於在冬眠季节内出现呢?冬眠的习性是否可以改变?用什么方法可以...
达乌尔黄鼠(Spermophilus Dauricus)冬眠期骨骼肌氧化能力的研究,姜山峰,高云芳,目的 研究不同时期达乌尔黄鼠骨骼肌呼吸酶活性和肌红蛋白含量的变化与其冬眠期抗肌萎缩机制间的关系。方法 黄鼠分冬眠前、冬眠一�