hibernate4.3.11怎么创建sessionfactory
hibernate框架随着版本的不断升级创建SessionFactory对象的方式也在不断的变化。
1、4.0之前我记得是如下这样:
Java代码  
Configuration configuration = new Configuration().configure();  
SessionFactory sessionFactory = configuration.buildSessionFactory();  
2、4.3之前如下这样:
Java代码  
Configuration configuration = new Configuration().configure();        
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()  
                                  .applySettings(configuration.getProperties())  
                             .buildServiceRegistry();  
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);  
3、4.3的新用法如下这样:
Java代码  
Configuration configuration = new Configuration().configure();  
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()  
                                       .applySettings(configuration.getProperties());  
StandardServiceRegistryImpl registry = (StandardServiceRegistryImpl) builder.build();  
SessionFactory sessionFactory = configuration.buildSessionFactory(registry);
Hibernate注解加载实体类文件
注解加载实体类文件代码如下:
.bird.user.entity;?
import?javax.persistence.Entity;
import?javax.persistence.Table;
import?javax.persistence.Id;
@Entity
@Table(name?=?"user")
public?class?User?{?
???private?int??id???????????;????
???@Id?
???public?int?getId()?{
????????return?id;
????}?
????public?void?setId(int?id)?{
????????this.id?=?id;
????}?
}
如果不用注解?,需要在spring.xml中增加如下代码。
?<property?name="mappingResources">
??????<list>
???????<value&/bird/user/entity/User.hbm.xml</value>
??????</list>
????</property>
spring 配置sessionfactory时class的两个类的区别是什么? ...
LocalSessionFactoryBean:读取Hibernate XML文件来获得映射的信息。
Example:
<bean id="mySessionFactory" 
           class=&.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
   <property name="dataSource" ref="myDataSource"/> 
   <property name="mappingResources"> 
     <list> 
       <value>product.hbm.xml</value> 
     </list> 
   </property> 
 </bean>
AnnotationSessionFactoryBean:LocalSessionFactoryBean的子类。
读取实体类的注解来获得映射的信息。
Example:
<bean id="sessionFactory" class=&.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
  <property name="dataSource" ref="dataSource"/> 
  <property name="annotatedClasses"> 
    <list> 
      <value>test.package.Foo</value> 
      <value>test.package.Bar</value> 
    </list> 
  </property> 
</bean>
或者扫描包下面的类
<bean id="sessionFactory" class=&.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
  <property name="dataSource" ref="dataSource"/> 
  <property name="packagesToScan" value="test.package"/> 
</bean>
整合ssh怎么自动生成所需的表?
在
??
?????????????
?????????????????
???????????
?????????????
?????????????????
???????????????	
?????????????????????
??????????????????????.hibernate.dialect.MySQLDialect??
?????????????????????
???????????????????true
???????????????????
???????????????????update
???????????????
???????????
???????????				
		
			<.bjsxt.po
		
???hibernate5怎么创建sessionfactory
要创建SessionFactory , 首先要创建Configuration 对象。
这个对象就是去读取hibernate 的一些配置信息。
默认状况下, hibernate会到 classPath 目录下加载hibernate.cfg.xml 文件。
这里延续上一篇的例子:
[Hibernate系列—] 1. 下载与试用Hibernate(MySQL与Oracle 配置)  
在Eclipse 中进行开发。
这个配置文件的方式可以有多种, 可以是xml , 可以是properties , 也可以直接在代码中写配置。
方式1.  在src 目录下放入  hibernate.cfg.xml, 类似上篇的例子
方式2.  在 src 目录下放入 hibernate.properties
内容如下:
[html] view plaincopy在CODE上查看代码片派生到我的代码片
.hibernate.dialect.MySQLDialect  
02.hibernate.connection.driver_.mysql.jdbc.Driver  
03.hibernate.connection.url=jdbc:mysql://localhost:3306/test  
04.hibernate.connection.username=root  
05.hibernate.connection.password=123456  
06.#hibernate.hbm2ddl.auto=create  
可以看出, 这种方式无法添加 User.hbm.xml 的配置, 所以可以在代码中添加:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
01.Configuration configuration = new Configuration().addResource(/oscar999/Usr.hbm.xml");  
方式3.  可以直接在代码中进行设置, 类似
[java] view plaincopy在CODE上查看代码片派生到我的代码片
01.Configuration configuration = new Configuration().addResource(/oscar999/Usr.hbm.xml")  
02.        .setProperty("hibernate.connection.driver_class",.mysql.jdbc.Driver")  
03.        .setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/test")                  
04.        .setProperty("hibernate.connection.username", "root")  
05.        .setProperty("hibernate.connection.password", "123456")  
06.        .setProperty("hibernate.dialect",.hibernate.dialect.MySQLDialect")  
07.        .setProperty("hibernate.hbm2ddl.auto", "update");  
也可以通过
[java] view plaincopy在CODE上查看代码片派生到我的代码片
01.Configuration configuration = new Configuration().oscar999.Usr.class)  
添加映射文件。
一般状况下, 添加 hibernate.cfg.xml 会比较常用, .properties 和 .xml 也可以并存。
除此之外, 如果不想使用默认的文件名, 也可以这样:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
01.File file = new File("/oscar999/myhibernate.xml");    
02.Configuration config = new Configuration();    
03.config.configure(file);    
SessionFactory 对象的创建
Configuration 创建完成之后, 接下来就是创建 SessionFactory 了。
在Hibernate 3中,创建SessionFactory 的方式是:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
01.SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();  
但是在, Hibernate 4 中, 这种方法已经过时了。
目前推荐的使用方式是:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
01.ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()  
02.        .applySettings(configuration.getProperties()).build();  
03.SessionFactory sessionFactory = configuration  
04.        .buildSessionFactory(serviceRegistry);  
至于为什么要使用这种方式, 可以参考:
/post/hibernate_orm_service_registry
session 的使用
sessionFactory 有了, 接下来就简单了,直接贴一个例子
[java] view plaincopy在CODE上查看代码片派生到我的代码片
01.Configuration configuration = new Configuration().oscar999.Usr.class);  
02.ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()  
03.        .applySettings(confi  guration.getProperties()).build();  
04.SessionFactory sessionFactory = configuration  
05.        .buildSessionFactory(serviceRegistry);  
06.Session session = sessionFactory.openSession();  
07.session.beginTransaction();  
08.session.save(new Usr("uesr3"));  
09.session.getTransaction()mit();  
10.session.close();  
11.sessionFactory.close();