Hibernate入門筆記_01_hibernate配置
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任
Hiberante 很重要的一個思想是ORM ——(Object Relation Mapping) .顧名思義
那麽HIbernate是怎麽實現對數據庫建立映射的呢?
XML : 通過配置Xml 文件來實現對數據庫表建立映射。
一、 建立映射配置文件(文件名稱跟位置不限):
引入約束: (DTD or Schema) 這裏引入DTD 約束, 約束鏈接: http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd
<hibernate-mapping> <!--1 配置類和表對應 class 標簽 name 屬性 實體類全路徑 table 屬性 數據庫表名稱--> <class name="com.daxiong.entity.User" table="t_user"> <!-- 2 配置實體類的id 跟表的id 對應 hibernate 要求實體類有一個屬性唯一值 hibernate 要求表有字段作為唯一值 --> <!-- id 標簽 name 屬性實體類裏面id 屬性名稱 column 生成表字段名稱--> <id name="id" column="id"> <!-- 生成的增長策略 native :生成表自動增長 --> <generator class="native"></generator> </id> <!-- 配置其他屬性和表字段對應 --> <property name="username" column="username"></property> <property name="password" column="password"></property> </class> </hibernate-mapping>
二 、 建立核心配置文件(位置名稱限制(在src 文件下,名稱為hibernate.cfg.xml)):
引入約束鏈接:http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd
<hibernate-configuration> <session-factory> <!-- 配置數據庫信息 --> <property name="hibernate.connection.driver_class"></property> <property name="hibernate.connection.url"></property> <property name="hibernate.connection.username"></property> <property name="hibernate.connection.password"></property> <!-- hibernate配置 (非必須)--> <!-- 輸出底層的sql語句 --> <property name="hibernate.show_sql">true</property> <!-- 對sql語句進行格式化 --> <property name="hibernate.format_sql">true</property> <!-- hibernate配置後自動創建表 如果已經有表更新 沒有創建 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 配置數據庫方言 在 mysql 裏實現分頁關鍵字limit 只能在MySQL中使用 在Oracle中 實現分頁rownum 在hibernate 中識別不同數據的特有語言 --> <property name="hibernate.dialec">org.hibernate.dialect.MckoiDialect</property> <!-- 引入映射文件 --> <mapping resource="com/daxiong/entity/Userhtb.xml" /> </session-factory> </hibernate-configuration>
註意引入映射文件的路徑。
四、在hibernate 向數據庫寫入數據的時候會發生亂碼的情況下作如下處理:
jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=utf-8
Hibernate入門筆記_01_hibernate配置