今日工作:今日完成Hinernate的一些入門級別的練習,溫習了之前學習過的知識點,
總結下開發步驟:
很經典的一個例子,我們來這寫一個HelloWord入門例子。
1、我們來搭建hinernate的環境.
首先新建一個JAVA項目,建立一個lib目錄,用來放hibernate的庫文件。
1)、添加所需要的jar包
2)、配置hibernate.cfg.xml文件
<session-factory>
<!-- 數據庫連接配置 -->
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///hibernate_1</property>
<!-- 配置hibernate基本信息 -->
<!-- sql方言-->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 是否控制檯打印信息 -->
<property name="show_sql">true</property>
<!-- 顯示格式化 -->
<property name="format_sql">true</property>
<!-- 自動生成數據表的策略 -->
<property name="hbm2ddl.auto">update</property>
<!-- 指定關聯的.hbm.xml文件 -->
<mapping resource="com/tianliangge/hibernate/User.hbm.xml"/>
</session-factory>
2.創建一個實體類,並且寫好裏面的get.set方法,然後寫上兩個構造函數,一個帶參和無參的,在實體類的包路徑下面創建對象映射文件---hbm.xml
裏面包含的是實體類和數據表的映射關係。
<hibernate-mapping>
<class name="com.tianliangge.hibernate.User" table="USER">
<id name="id" type="int">
<column name="ID" />
<!-- 生成id的方式,native是按照數據庫的方式生成id -->
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="date" type="java.sql.Date">
<column name="DATE" />
</property>
</class>
</hibernate-mapping>
3、在hibernate.cfg.xml文件中關聯.hbm.xml文件
<mapping resource="com/tianliangge/hibernate/User.hbm.xml" />
4、建立測試類測試。
//1.建立一個Session對象
SessionFactory sessionFactory = null;
//1).建立一個Configuration對象,對應hibernate的基本配置和對象映射文件
Configuration configuration = new Configuration().configure();
//4.0 之前這樣創建
// sessionFactory = configuration.buildSessionFactory();
//2). 創建一個 ServiceRegistry 對象: hibernate 4.x 新添加的對象
//hibernate 的任何配置和服務都需要在該對象中註冊後纔能有效.
ServiceRegistry serviceRegistry =
new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
//3).
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
//2. 創建一個 Session 對象
Session session = sessionFactory.openSession();
//3. 開啓事務
Transaction transaction = session.beginTransaction();
// //4. 執行保存操作
// User news = new User("c++",new Date(new java.util.Date().getTime()));
// session.save(news);
//
// //5. 提交事務
// transaction.commit();
//
// //6. 關閉 Session
// session.close();
//
// //7. 關閉 SessionFactory 對象
// sessionFactory.close();
User user = (User)session.get(User.class, 1);
System.out.println("get:"+user);
項目的路徑如下:
一個經典的例子就寫完了。
明日計劃:明日計劃是完成新的任務安排,溫習hibernate裏面的幾種映射關係。