hibernate3.jarejb3-persistence.jarant" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

hibernate環境搭建

系統 2278 0

?

我的環境是:eclipse 、mysql數據庫。

?

一:先創建一個普通的java項目。

?

步驟:File→new→Project 。如果直接看不到Project 就選擇Other →General→Project

在project name處輸入項目名字。其他選項根據需要填寫。

?

二:導入hibernate需要的包。

?

?????所需要的包:<!--StartFragment -->

<!--StartFragment -->
????? hibernate3.jar
????? ejb3-persistence.jar
????? antlr-2.7.6.jar
????? commons-collections-3.1.jar
????? dom4j-1.6.1.jar
????? javassist-3.12.0.GA.jar
????? jta-1.1.jar
????? slf4j-api-1.6.1.jar
步驟:點擊項目名稱右鍵→Propertise(最后一個屬性)→ Java Build Path →Libraries →Add External JARs...
???????? 找到你的包就可以了。
?
三:導入數據庫驅動。
???? 根據你使用的什么數據庫導入什么樣的驅動。我這里所用的是mysql
步驟同導入hibernate包一樣。
?
四:hibernate的配置文件。
??????? hibernate.cfg.xml
?
        <!DOCTYPE hibernate-configuration PUBLIC

      "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

      "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<!-- sessionFactory -->
      <session-factory>
			<!--配置數據庫驅動類 -->
           <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
			<!--數據庫連接的url ,最后要跟數據庫的名稱-->
           <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/school</property>
			<!--數據庫賬號 -->
           <property name="hibernate.connection.username">root</property>
			<!--數據庫密碼 -->
           <property name="hibernate.connection.password">root</property>
			<!--數據庫方言-->
           <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

           <!--<property name="hibernate.hbm2ddl.auto">create</property>-->

           <property name="hibernate.show_sql">true</property>
           
			<!-- 映射實體類配置文件 -->
           <mapping resource="com/coney/school/model/Teacher.hbm.xml"/>

      </session-factory>
</hibernate-configuration>
 
      
?
在這里的時候遇到一個問題:
在我搭建好環境后。測試時,往數據庫里面添加數據。每次添加一條都會覆蓋原來的數據。。
并且,本來設置好的自動增長列也會自動給取消。剛開始還以為是我每次都添加的一條記錄標識列沒有自動添加上去。
現在找到根本原因了。。
原因就是在這個配置文件里面
<!--<property name="hibernate.hbm2ddl.auto">create</property>-->
這句。現在注釋掉就可以正常添加了。不會覆蓋原來的數據。
這個hibernate.hbm2ddl.auto參數的作用主要用于:自動創建|更新|驗證數據庫表結構
詳細介紹請看這:
五:創建實體類并封裝好。
        public class Teacher {

	private Long tid;
	private String tname;
	private String tpwd;
	private String tclass;
	private String tschool;
            //  此處省略掉 get...set...方法
}
      
?在建這個實體類的時候也出過一個問題,就是命名不對。
剛開始的時候我的屬性名是叫‘tId ,tName.....’ 然后自動生成get。set方法出來。
getTId ,setTId 。。在啟動服務器的時候報錯說找不到Teacher類的tId 這個屬性。
看著命名有點怪怪的就懷疑會不會是命名的問題。然后就把tId該成了tid 再生成get。set方法。
然后就沒報錯了。。問題是解決了。。可就是不知道原因是什么。。汗。。。
六:創建實體類的配置文件。(在這里使用的是配置文件來映射實體類。同樣也可以用注解來影射)
???? Teacher.hbm.xml
建好后在hibernate.cfg.xml文件里面配置。上面代碼有寫。但要注意文件的路徑。
        <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.coney.school.model"> <!--  實體類包 -->

<class name="Teacher" table="teacher"> <!-- name對應實體類名稱, table 對應數據庫表名 -->
	<!-- ID name 對應實體類字段,column 數據庫表字段-->
	<id name="tid" type="java.lang.Long" ><!--type :java類型-->
		<column name="tid"  ><!--column 數據庫表字段 not-null:不為空 ,length:長度,default:默認值-->
			<comment>表ID</comment><!-- 注釋 -->
		</column>
		<generator class="increment"/> <!--序列生成器, 字段增長 -->
	</id>
	<!--其他字段基本上一樣,name 實體類字段,column 數據庫表字段,length 長度,not-null 不為空 -->
    <property name="tname" column="tName" length="20" not-null="true"></property>
    <property name="tpwd" column="tPwd"  length="20" not-null="true"></property>
    <property name="tclass" column="tClass"  length="20" not-null="true"></property>
    <property name="tschool" column="tSchool"  length="20" not-null="true"></property>
</class>

</hibernate-mapping>

      
?
七:測試
????? 建一個測試類。測試連接數據庫。并往表里面添加數據。
        package com.coney.school.test;
  
import org.hibernate.*; 
import org.hibernate.cfg.Configuration;
import com.coney.school.model.Teacher;

public class TestConn {
	 public static void main(String[] args){ 
	 Configuration config = new Configuration().configure("hibernate.cfg.xml");  //調用hibernate配置文件,讀取配置文件信息。
	 SessionFactory sf = config.buildSessionFactory();   //讀完之后,再用這個對象來生成一個SessionFactory
	 Session session = sf.openSession();  
     Transaction tx = session.beginTransaction();  
     tx.begin();  //有了SessionFactory就可以開Session了,可以用事務提交了.
     Teacher m = new Teacher();   
     m.setTname("小小");
     m.setTpwd("xx");
     m.setTclass("小班");
     m.setTschool("翠花幼兒園");
     session.save(m);
     tx.commit(); //提交

  }   

}

      
?
然后去數據里看是否添加成功哦。
大概就這樣了。。當做筆記。。下次不清楚的時候可以來回憶回憶。。嘿嘿。。
額。把需要的包。。放在附件里面吧。
在驅動包里面順便把sqlserver的驅動包也放進去了。
?
?

hibernate環境搭建


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 东辽县| 安庆市| 织金县| 安徽省| 宽城| 嘉禾县| 榆树市| 万年县| 朝阳市| 江达县| 德安县| 江油市| 双牌县| 左贡县| 东平县| 黎平县| 龙陵县| 广元市| 兰考县| 班戈县| 菏泽市| 尉犁县| 衡水市| 南丹县| 静宁县| 伊金霍洛旗| 宣恩县| 桦甸市| 彩票| 阳高县| 绥德县| 凤山县| 恩施市| 衡东县| 繁昌县| 益阳市| 望江县| 西昌市| 桐城市| 固始县| 水富县|