如何建立第一個hibernate項目以及解決相關出現的問題

今天着實讓我頭疼的很,在學習hibernate的時候,雖然理解了,但是真實的實例開發起來會遇到很多的問題,就僅僅從數據庫取出屬於顯示出來就讓我遇到了很大的麻煩,從早上忙到晚上,這裏先說問題再說一個系統的開發流程:

首先:我發現建立hibernate.cfg.xml文件的時候,發現在最頂部提示一個警告,這一個警告很煩人,但是,知道現在我還是那他沒有辦法,dtd什麼的都改了,驗證也改了,就是沒辦法,。最後警告請教他人說這個歲項目沒有太大的影響,與是我就徹底的放棄了。

然後就是一個非常大的問題了,當我按部就班的把所有的應用都全部寫完的時候,一點擊運行距提示很多錯誤,是很多錯誤,但是,至少我還是從錯誤裏面獲取了一些有用的信息,就是說我的代碼有問題,當我把代碼改進了之後,代碼還是有問題,最後在錯誤的前面我看到了sl4j的一個jar包引入錯誤,爲什麼是會引入錯誤呢,我明明已經引入進去,但是,沒有辦法,錯了就是錯了,只能大膽的試了一把,假設sl4j的jar包有問題,那麼我就從官網下載的最新的jar包全部更新,結果程序可以正常運行》


下面接着說建立hibernate項目的整個流程:

1;引入jar包,這裏的jar包我已經全部修改整理好了hibernate-3.3.2jar包-已整理

2:建立hibernate.cfg.xml文件,這裏不加贅述:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/hibernate</property>
        <property name="connection.username">root</property>
        <property name="connection.password">toor</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>

        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">update</property>

        <mapping resource="com/xuning/demon/User.hbm.xml"/>
    </session-factory>

</hibernate-configuration>
3:建立數據庫相應表的相關對象:如:

package com.xuning.demon;

public class User {
	private int id;
	private String username;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}

}

3:建立對象.hbm.xml配置文件,配置關係對象的映射關係

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">


<hibernate-mapping>
	<class name="com.xuning.demon.User">
		<id name="id"/>
		<property name="username" />
		<property name="password" />
    </class>
</hibernate-mapping>

4:執行程序:

package com.xuning.demon;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Usermain {
	public static void main(String[] args) {
		//實例化一個對象
		User user=new User();
		//給對象的成員屬性賦值
		user.setUsername("xuning7");
		user.setPassword("toor");
		//實例化configuration對象
		Configuration cfg=new Configuration();
		//讀取hibernate。cfg.xml配置文件實例化sessionfactory對象
		SessionFactory sessionFactory=cfg.configure().buildSessionFactory();
		//實例化session並開啓
		Session session=sessionFactory.openSession();
		//開始施行後事務。hibernate的dml必須執行事務
		session.beginTransaction();
		//保存對象
		session.save(user);
		//提交事務
		session.getTransaction().commit();
		//關閉session
		session.close();
		//關閉sessionfactory
		sessionFactory.close();
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章