1。当我们调用
<wbr><wbr> Configuration config=new Configuration().configure();</wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr> 时候Hibernate会自动在当前的CLASSPATH中搜寻hibernate.cfg.xml文件并将其读取到内存作为后继操作的基础配置。</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
<wbr>我们也可以指定配置文件名,如果不希望使用默认的hibernate.cfg.xml文件作为配置文件的话:</wbr>
<wbr><wbr><wbr></wbr></wbr></wbr>
SessionFactory
<wbr><wbr><wbr><wbr> SessionFactory 负责创建Session的实例。我们可以通过Configuation实例创建SessionFactory;</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr> Configuration config=new Configuration().configure();</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr> SessionFactory sessionFactory=config.buildSessionFactory();</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
Configuration 实例config 会根据当前的配置信息,构造SessionFactory实例并返回。SessionFactory一旦构建完毕,即被赋予特定的配置信息。也就是说,之后config的任何变更将不会影响到已经创建的SessionFactory实例(SessionFactory)。如果需要使用基于改动后的config实例的SessionFactory,需要从config重新构建一个SessionFactory实例。
<wbr></wbr>
Session
<wbr><wbr> Session 是持久层操作的基础,相当于JDBC中的Connnection。</wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Configuration config=new Configuration().configure();<wbr> //读取默认的hibernate.cfg.xml的文件</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> SessionFactory sessionFactory=config.buildSessionFactory();<wbr> //通过config创建sessionFactory的实例</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> Session session=sessionFactory.openSession();<wbr><wbr><wbr><wbr><wbr><wbr> //获得session</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
之后,我们就可以调用Session所提供的save,find,flush等方法完成持久化操作:
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 看例Save:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr> TUser user=new TUser();</wbr></wbr>
<wbr><wbr> user.setName("yuanliang");</wbr></wbr>
<wbr><wbr> session.save(user);</wbr></wbr>
<wbr><wbr> session.flush();//Session.flush方法强制数据库同步,这里既强制Hibernate将user实例立即同步到数据库中。在事物提交的时候和Session关闭的时候,也会自动执行flush方法
</wbr></wbr>
<wbr><wbr></wbr></wbr>
<wbr></wbr>
find()//这个方法返回一个List
<wbr><wbr> List list=Session.find(From TUser as tu order by tu.name asc);</wbr></wbr>
Load() //这个方法返回是一个对象
<wbr><wbr> Customer c=(Customer)session.load(Customer.class,customer_id);</wbr></wbr>
<wbr></wbr>
修改数据:
1. 将要修改的数据从数据库读出,赋值给表对应的持久化类
<wbr>Query query = session.createQuery("from User as u where list = query.list();<br><wbr>User usr = (User)list.get(0);</wbr></wbr>
2. 对得到的持久化对象进行修改
<wbr>usr.setUsername("Look");<br>
3. 启动事务管理<br><wbr><wbr> Transaction ts = session.beginTransaction();</wbr></wbr></wbr>
4. 将赋值后的持久化对象提交给session
<wbr><wbr><br><wbr>session.save(usr);<br>
5. 结束事务管理并向数据库提交<br><wbr>ts.commit();</wbr></wbr></wbr></wbr>
-------------------------------
public void update(){
<wbr><wbr><br><wbr><wbr>Integer Integer(2);<br><wbr><wbr>Transaction ts = null;<br><wbr><wbr>try {<br><wbr><wbr><wbr>Session session = HibernateSessionFactory.currentSession();<br><wbr><wbr><wbr><br><wbr><wbr><wbr>Query query = session.createQuery("from User as u where list = query.list();<br><wbr><wbr><wbr>User usr = (User)list.get(0);<br><wbr><wbr><wbr>usr.setUsername("Look");<br><wbr><wbr><wbr><br><wbr><wbr><wbr>ts = session.beginTransaction();<br><wbr><wbr><wbr>session.save(usr);<br><wbr><wbr><wbr><br><wbr><wbr><wbr>ts.commit();<br><wbr><wbr><wbr><br><wbr><wbr>} catch (HibernateException e) {<br><wbr><wbr><wbr>// TODO Auto-generated catch block<br><wbr><wbr><wbr>e.printStackTrace();<br><wbr><wbr><wbr>try {<br><wbr><wbr><wbr><wbr>ts.rollback();<br><wbr><wbr><wbr>} catch (HibernateException e1) {<br><wbr><wbr><wbr><wbr>// TODO Auto-generated catch block<br><wbr><wbr><wbr><wbr>e1.printStackTrace();<br><wbr><wbr><wbr>}<br><wbr><wbr>}<br><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
分享到:
相关推荐
(2)SessionFactory:初始化Hibernate,充当数据存储源的代理,创建Session对象。一个SessinFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。如果应用同时访问多个DB,怎需要为每个数据库...
创建SessionFactory,编写session获得方法,编写session获得和 打开 和关闭方法
b)使用SessionFactory对象openSession()方法创建Session对象。 c)使用Session的相应方法来操作数据库,将对象信息持久化到数据库。 3.Hibernate的5个核心类或接口: (1)Configuration:用于解析hibernate.cfg....
Spring文件中的 SessionFactory中 加入为了能得到同一个Session
创建Session实例 打开事务 开始持久化访问 提交事务 如遇异常,回滚事务 关闭Session 24.3 Spring对Hibernate的简化 24.3.1 概述 Spring提供的持久层访问的方式,无须显式地打开和关闭Session,也无须在代码中执行...
Compass概念: 1:Compass相当于hb的SessionFactory 2:CompassSession相当于hb的Session 3:CompassTransaction相当于hb的transaction。 <br>Compass也是采用CompassConfiguration(装载配置和映射文件...
8.4.1 Session的save()和persist()方法 8.4.2 Session的load()和get()方法 8.4.3 Session的update()方法 8.4.4 Session的saveOrUpdate()方法 8.4.5 Session的merge()方法 8.4.6 Session的delete()方法 ...
8.4.1 Session的save()和persist()方法 8.4.2 Session的load()和get()方法 8.4.3 Session的update()方法 8.4.4 Session的saveOrUpdate()方法 8.4.5 Session的merge()方法 8.4.6 Session的delete()方法 ...
8.4.1 Session的save()和persist()方法 8.4.2 Session的load()和get()方法 8.4.3 Session的update()方法 8.4.4 Session的saveOrUpdate()方法 8.4.5 Session的merge()方法 8.4.6 Session的delete()方法 ...
8.4.1 Session的save()和persist()方法 8.4.2 Session的load()和get()方法 8.4.3 Session的update()方法 8.4.4 Session的saveOrUpdate()方法 8.4.5 Session的merge()方法 8.4.6 Session的delete()方法 ...
第16章 创建和测试分层的应用程序 16.1 Web应用程序中的Hibernate 16.1.1 用例简介 16.1.2 编写控制器 16.1.3 OSIV模式 16.1.4 设计巧妙的领域模型 16.2 创建持久层 16.2.1 泛型的...
1:读取并解析映射信息,创建SessionFactory 2:打开Session 3:创建事物 4:持久化操作 5:提交事务 6:关闭Session 7:关闭SessionFactory Hibernate持久化:Hibernate根据定义的映射规则将对象持久化保存...
3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 (Binary Streams) 3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言中的...
获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 (Binary Streams) 3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言中的替换 ...
3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 (Binary Streams) 3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言中的...
3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 (Binary Streams) 3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言中的...
获得SessionFactory 4.3. JDBC连接 4.4. 可选的配置属性 4.4.1. SQL方言 4.4.2. 外连接抓取(Outer Join Fetching) 4.4.3. 二进制流 (Binary Streams) 4.4.4. 二级缓存与查询缓存 4.4.5. 查询语言中的替换 ...
3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 (Binary Streams) 3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言中的...
3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 (Binary Streams) 3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言中的...