1. hibernate怎麼讀取配置文件
Hibernate載入配置文件的兩種方法:
(一):configuration.configure();(默認載入src下的hibernate.cfg.xml文件)
代碼:
private static SessionFactory sf = null; static{
Configuration configuration = new Configuration();
configuration.configure();
sf = configuration.buildSessionFactory();
}
如果使用了這種載入方法那麼在hibernate.cfg.xml文件中就需要mapping XX.hbm.xml文件了
代碼:
<session-factory>
<mapping resource="domain/Students.hbm.xml"/>
<mapping resource="domain/Techer.hbm.xml"/></session-factory>
第二種方法使用的是con.addClass(class);方法
在test類中代碼:
private static SessionFactory sf = null; static{
Configuration configuration = new Configuration();
configuration.configure();
configuration.addClass(Techer.class);
configuration.addClass(Students.class);
sf = configuration.buildSessionFactory();
}
2. hibernate配置文件在哪
調用new Configuraction()時,Hibernate在classpath的根目錄下搜索名為hibernate.properties的文件。如果找到了,所有hibernate.*屬性都會被載入並添加到Configuration對象。
調用configure()時,Hibernate在classpath的根目錄下搜索名為hibernate.cfg.xml的文件,如果無法找到會拋出一個異常。當然,如果你沒有這個配置文件,就不一定要調用這個方法。如果XML配置文件中的設置與較早設置的屬性完全相同,XML設置就覆蓋前面的設置。
hibernate.properties配置文件的位置始終在classpath的根目錄中,處在任何包之外。如果要使用一個不同的文件,或者要Hibernate在classpath的子目錄中查找XML配置文件,就必須把路徑當作configure()方法的一個實參進行傳遞:
SessionFactory sessionFactory = new Configuration()
.configure("auction.cfg.xml").buildSessionFactory();
3. 如何在hibernate.cfg.xml中的主配置文件中配置多個映射文件
需要寫個路徑來讀spring配置文件。或者你把映射的東西拷貝到hibernate.cfg.xml中,把hibernate.cfg.xml放到src目錄下,然後運行生成資料庫表也行的。
4. java eclipse怎樣自動生成hibernate配置映射文件
步驟如下:
1、創建資料庫,創建相應的表;
2、點擊圖標,選擇MyEclipse Datebase Explorer;
5. hibernate.cfg.xml怎麼添加xml配置文件
Hibernate默認的配置文件路褲檔沒徑是/hibernate.cfg.xml,如果你不想使用默認路徑。比如你把配置文件都放到conf目錄下面。那如何修改Hibernate的config路徑呢。其實也很簡單。看我蠢漏寫的HibernateUti類。
(Hibernate hibernate.cfg.xml 配置路徑) (Hibernate hibernate.cfg.xml 配置路徑)
(Hibernate hibernate.cfg.xml 配置路徑)(Hibernate hibernate.cfg.xml 配置路徑)
(Hibernate hibernate.cfg.xml 配置路徑)(Hibernate hibernate.cfg.xml 配置路徑)
我們只要把
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
改為:
sessionFactory = new AnnotationConfiguration().configure(new File("../conf/hibernate.cfg.xml")).buildSessionFactory();
就可也了。
../conf/hibernate.cfg.xml就是你的路胡納徑。
6. 在Eclipse中創建Hibernate配置文件的代碼寫在src目錄下,代碼寫在什麼文件里
hibernate 的配置文件寫在根目錄下,你說的代碼,是指各個表的實體類的配置,新建包,entity,
把實體類和實體類的配置文件都寫在這里,當然,你配置文件中的路徑要寫對。
7. Hibernate3 和Hibernate4 在配置文件上的區別
在使用hibernate之前要首先對hibernate進行一些基礎的配置信息,像映射文件XXX.hbm.xml XXX代表當前的domain的模型類名
1 <?xml version="1.0"?>
2 <!DOCTYPE hibernate-mapping PUBLIC
3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
5 <hibernate-mapping package="com._520it.day01._01_hello.domain">
6 <!-- 映射關系 -->
7 <class name="User" table="t_user">
8 <id name="id" column="uid">
9 <generator class="native"/>
10 </id>
11 <property name="name" column="uname"/>
12 <property name="salary" column="usalary"/>
13 <property name="hiredate" column="uhiredate"/>
14 </class>
15 </hibernate-mapping>
下一步配置hibernate.cfg.xml文件
Hibernate3 在配置的時候,需要創建一個hibernate.cfg.xml文件,然後配置session-factory,把連接資料庫的基本信息都以屬性的形式羅列出來
1 <!DOCTYPE hibernate-configuration PUBLIC
2 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
3 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
4
5 <hibernate-configuration>
6 <session-factory>
7 <!-- 包含連接資料庫的基本信息 -->
8 <!-- 連接資料庫的方言 -->
<!--這里注意在property 的name 和value中不能有空格的出現-->
9 <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
10 <!-- 連接資料庫的驅動 -->
11 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
12 <!-- 連接資料庫的url -->
13 <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
14 <property name="hibernate.connection.username">root1</property>
15 <property name="hibernate.connection.password">admin1</property>
16 <!-- 是否顯示sql語句 -->
17 <property name="hibernate.show_sql">true</property>
18
19 <!-- 關聯映射文件 -->
20 <mapping resource="com/_520it/day01/_01_hello/domain/User.hbm.xml"/>
21 </session-factory>
22 </hibernate-configuration>
而在Hibernate4中,官方建議在另外創建一個hibernate.properties文件,在這個配置文件里,存放和資料庫連接的基本信息
即:把上述文件中的對應的參數在這里寫出來,同樣不要有空格的出現
1 hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
2 hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
3 hibernate.dialect=org.hibernate.dialect.MySQLMyISAMDialect
4 hibernate.connection.driver_class=com.mysql.jdbc.Driver
5 hibernate.connection.url=jdbc:mysql:///hibernate
6 hibernate.connection.username=root1
7 hibernate.connection.password=admin1
這個時候在原來的hibernate.cfg.xml文件中就只剩下了關聯映射文件的配置信息
1 <!DOCTYPE hibernate-configuration PUBLIC
2 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
3 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
4 <!-- 當用這種方式的時候需要配置一個hibernate.properties文件 -->
5 <hibernate-configuration>
6 <session-factory>
7 <!-- 關聯映射文件 -->
8 <mapping resource="com/_520it/day01/_01_hello/domain/User.hbm.xml"/>
9 </session-factory>
10 </hibernate-configuration>
相比之下,hibernate3中的所有信息都在一個配置文件中,比較集中,結構清晰,hibernate4中,文件分開進行配置,便於管理,以後如果想要添加多個映射文件,也只需要在bibernate.cfg.xml文件中進行添加就好了,不用再去管資料庫的連接配置文件
在hibernate3中創建sessionFactory
1 //1.創建配置對象
2 Configuration config = new Configuration();
3 //2.讀取配置文件
4 config.configure();
5 //3.創建sessionFactory對象
6 SessionFactory sessionFactory = config.buildSessionFactory();
7 //4.獲取session對象
8 Session session =sessionFactory.openSession();
但是這個方法,官方已經不建議使用,目前依然可以使用
在hibernate4中,這個方法需要在創建sessionFactory的時候傳入一個registy的參數
//1.創建配置對象
Configuration config = new Configuration();
//2.讀取配置文件
config.configure();
//3.創建serviceRegistry對象
ServiceRegistry registry = new ().build();
//4.創建sessionFactory對象
SessionFactory sessionFactory = config.buildSessionFactory(registry);
//5.獲取session對象
Session session =sessionFactory.openSession();
以上兩種方法都可以使用,僅憑個人喜好