Hibernate第一次配置與使用(圖文)
實驗環境:
MyEclipse 7 Tomcat 5 Hibernate 4.3.10 MySQLHibernate庫匯入
建立工程之後,就該匯入Hibernate庫啦,因為我用的是MyEclipse 7,如果是按照如下工程自動匯入方式,就只有Hibernate 3版本可以使用。工程自動新增
手動新增
因為我想用Hibernate4,所以就要自己手動新增啦。 需要新增的庫都下圖所示,在required目錄中 新增庫的方式是:右鍵點選工程,之後選擇Build Path->Configure Build Path->Libraries->Add External JarsMySQL 庫匯入
首先要去網上下一個mysql-connector-java,裡邊的mysql-connector-java-5.1.7-bin.jar就是我們要新增的jar啦。News.java類的編寫
設定如下4個屬性,並生成相應的get和set方法package hibernate; import java.sql.Date; public class News { private int id; private String title; private String author; private Date date; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public News(String author, String title, Date date) { super(); this.author = author; this.date = date; this.title = title; } public News(){ } public String toString(){ return "News [id = " + id + ", title = " + title + "author = " + author + "date = "+ date + "]"; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } }
Hibernate.cfg.xml配置資料庫
在src目錄下新建一個型別為Hibernate Configuration File,然後新增如下內容,我選用的是MySQL資料庫。關於上面的資訊與它們的值可以在如下目錄中的hibernate.properties裡邊選擇相關的資料庫進行檢視。<hibernate-configuration> <session-factory> <!-- 配置連線資料庫的基本資訊 --> <property name="connection.url">jdbc:mysql://localhost:3306/mysql</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <!-- 配置Hibernate的基本資訊 --> <!-- 資料庫使用的方言--> <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <!-- 執行操作時是否在控制檯Console列印SQL語句--> <property name="show_sql">true</property> <!-- 是否對SQL進行格式化 --> <property name="format_sql">true</property> <!-- 自動生成資料表的策略,update可以自動建立表 --> <property name="hbm2ddl.auto">update</property> <!-- 類與表的對映檔案的註冊,類為News類,表在包hibernate中的News.hdb.xml進行詳細設定 --> <mapping resource = "hibernate/News.hdb.xml"/> </session-factory> </hibernate-configuration>
物件關係對映檔案hbm.xml
在hibernate包裡邊建立一個News.hbm.xml檔案,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.yjj">
<class name = "hibernate.News" table = "NEWS">
<!-- 指定主鍵,name表示News類中的屬性名,column則是資料庫中的名字 -->
<!-- type可以使用Java中的java.lang.Integer,也可以直接使用hibernate中的int或Integer,hibernate可以實現自動轉換 -->
<id name = "id" column = "ID" type = "java.lang.Integer">
<!-- 指定主鍵的生成方式,native表示使用資料庫本地方法建立-->
<!-- assign則表示由使用者設定-->
<generator class = "native"></generator>
</id>
<property name = "title" type = "java.lang.String">
<column name = "TITLE"></column>
</property>
<property name = "author" type = "java.lang.String">
<column name = "AUTHOR"></column>
</property>
<property name = "date" type = "java.sql.Date">
<column name = "DATE"></column>
</property>
</class>
</hibernate-mapping>
Test.java測試類
import java.sql.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class Test {
/**
* @param args
*/
private SessionFactory sessionFactory;
private Configuration configuration;
private ServiceRegistry serviceRegistry;
private Transaction transaction;
private Session session;
public Test(){
//1.建立一個SessionFactory
sessionFactory = null;
//1).建立一個Configuration,對應hibernate配置檔案和物件關係對映資訊
configuration = new Configuration().configure();
//2).建立一個ServiceRegistry物件,hibernate4.x新加的
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
//3).
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
//2.建立一個session物件
session = sessionFactory.openSession();
//3.建立事物物件
transaction = session.beginTransaction();
}
public void destroy(){
transaction.commit();
session.close();
sessionFactory.close();
}
public void test(){
News news = new News();
news.setAuthor("yjj");
news.setDate(new Date(new java.util.Date().getTime()));
news.setTitle("Title");
session.save(news);
}
public void get(){
News news = (News)session.get(News.class, 0);
System.out.println("result" + news.toString());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t = new Test();
t.test();
t.get();
t.destroy();
}
}
執行結果:
從下邊可以看到表開始是沒有的,Hibernate執行的SQL語句則最下的藍框所示。接著切換到資料庫工作空間看看
可以看到我的MySQL資料庫中已經多了一個news表啦!
右鍵這個表名,點選generate->Select Statement,會出現SQL語句介面,然後執行它,就可以在下面看到結果啦,看,不僅表出現了,還已經有一個數據新增在裡邊了吧!
JDK版本差異錯誤:
提示如下錯誤了Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
解決辦法可見下面連結:
造成這種過錯是ni的支撐Tomcat執行的JDK版本與支撐application執行的JDK版本不一致導致的. 把它們的JDK版本改成一致步驟如下: 1.Window --> Preferences -->Java --> compiler中的compiler compliance level對應的下拉選單中選擇JDK版本. 2.Window --> Preferences -->MyEclipse --> Servers -->Tomcat --> Tomcat n.x -->JDK中的Tomcat JDK name下的下拉選單中選擇自身電腦上安裝的JDK版本(必需與步驟1中的JDK版本一致).
如果要在MyEclipse中新增jdk,則是
Window --> Preferences -->Java -->Installed JREs->add
JDK安裝在哪裡
可是我已經忘記JDK在哪裡了,我的JDK安裝在哪裡呢?如下,在控制面板裡邊有哦
tomcat的JDK設定
提示新增JRE不行,需要新增JDK原來我沒裝JDK呀!
沒有加DTD導致的XML問題
ERROR: HHH000196: Error parsing XML (2) : cvc-elt.1: Cannot find the declaration of element 'hibernate-mapping'
加上這一句<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
就好了
相關推薦
Hibernate第一次配置與使用(圖文)
實驗環境: MyEclipse 7 Tomcat 5 Hibernate 4.3.10 MySQL Hibernate庫匯入 建立工程之後,就該匯入Hibernate庫啦,因為我用的是MyEclipse 7,如果是按照如下工程自動匯入方式,就只有Hibernate 3版
第一次用伺服器(一) 環境配置
當個備忘錄,防止重置系統以後忘了要幹啥 環境:學生機 1CPU 2G 50G 1M,包年+.cn域名 128RMB,預裝ubuntu 16.04 32bit 1.java & mysql openjdk安裝: sudo add-apt-repository p
第一次用伺服器(二)專案打包執行
開發環境:IDEA 2018.1 基於SpringBoot 2.0 + Maven1. 首先打包: 在pom.xml中配置: <groupId>自定義</groupId> <artifactId>自定義</artifactId> <
SmartBear SoapUI Pro入門教程--第一次功能測試(四)
SoapUI Pro擁有許多其他web服務測試工具所不具備的高階技術和功能。對於REST、SOAP以及其他流行的API和物聯網協議,它提供了業界最全面的功能測試功能。通過易用的圖形介面和企業級功能,SoapUI Pro允許你快速建立和執行自動功能測試。在單一環境下,SoapUI Pro提供了完整的測
SmartBear SoapUI Pro入門教程--第一次功能測試(二)
SoapUI Pro擁有許多其他web服務測試工具所不具備的高階技術和功能。對於REST、SOAP以及其他流行的API和物聯網協議,SoapUI Pro提供了業界最全面的功能測試功能。通過易用的圖形介面和企業級功能,SoapUI Pro允許你快速建立和執行自動功能測試。在單一環境下,SoapUI P
SmartBear SoapUI Pro入門教程--第一次功能測試(一)
SoapUI Pro擁有許多其他web服務測試工具所不具備的高階技術和功能。對於REST、SOAP以及其他流行的API和物聯網協議,SoapUI Pro提供了業界最全面的功能測試功能。通過易用的圖形介面和企業級功能,SoapUI Pro允許你快速建立和執行自動功能測試。在單一環境下,SoapUI P
從Oralce裸奔開始配置資料庫(圖文)
在實際做專案過程中,經常會用到Oralce,很多時候都需要自己手動安裝系統和資料庫。在配置資料庫時,往往比較頭疼。 ora配置檔案的編輯特別如此。測試不通過時,發生Error時,我們往往會去搜尋網上的解決方法。甚至還有的人會直接複製貼上網上的配置資訊到ora檔案。然後不知不覺把全形空格複製進
炒雞詳細的HCL的Telnet服務配置過程(圖文)
之前學習Linux有配置過Telnet服務達到Linux與Windows的通訊。在學習H3C路由的過程中,配置Telnet的基本思想是一樣的。 第一步首先開啟HCL拖拽一個主機一個路由器
struts2第一次使用配置與記錄(圖文)Hello-World
環境說明 MyEclipse7 struts-2.3.14 問題: 找不到action,讓我頭痛了一上午的問題呀 HTTP Status 404 - /Struts2/hello.action type Status report message /Struts2/he
我的一個配置redux(實現一次儲存與呼叫方法)之旅
前言 : 今天呢,就配置一下redux,redux的重要性呢,就叭叭叭一大堆,什麼也沒有帶著配置一次來的重要,因為許多涉及到的屬性和方法,用法是活的,但格式是需要記憶的。 過程中不要嫌我嘮叨,有的地方為了便於理解和記憶,反而會繞一下,配置redux的確比較麻煩,用到我們平時不常用的方法,我們不熟悉他們,所以會
王一恒《跨部門溝通與協作》講座學習筆記(圖文)
尊嚴 原則 改進 贊美 抽象 準備 興趣 ont 承諾 上周六,參加了王一恒老師的《跨部門溝通與協作》講座,老師講的一些溝通的技巧和理論還是非常有實際操作價值的,在這裏與大家共同分享一下。 溝通最忌諱的是一臉死相。 “溝”是兩個人的事情。 溝通的黃金法則:你希
通達OA 小飛魚在線開發培訓第一講介紹(圖文)
eas 技術 src ext mar dsm rac popu -a 培訓課件的主要內容。須要參加培訓的同學要註意了。課程內容以有用為主。課件僅供參考。 通達OA 小飛魚在線開發培訓第一講介紹(圖文)
hibernate框架在eclipse下的配置方法(一)
java、 sql數據庫 文件目錄 測試表 any 配置 包名 ive 當我 一、ORM O:object 對象 R:Realtion 關系(關系型數據庫) M:Mapping 映射 ORM:對象關系型映射 目前流行的編程語言,如Java、C# ,它們都是面向對象的編程
一周第一次課筆記(1月22日)
終端 想要 alt 一次 鏡像 linux 一個 images bsp 一周第一次課(1月22日)1.1學習之初1.2約定1.3認識Linux1.4安裝虛擬機1.5安裝centos7 1.1學習之初 學習之前合理定位自己 給自己設定1個合理目標 計劃好學習的期限
FineBI學習系列之FineBI的Windows裏安裝後的一些配置事宜(圖文詳解)
fine left text -a 得到 幹貨 圖文詳解 註冊 博客 不多說,直接上幹貨! 前期博客 第一步:需要點擊獲取激活碼 第二步:點擊註冊 註冊的
(一)配置mac環境下的JAVA_HOME 與 (二)配置maven (三)Mac上jdk的配置 (四)在terminal中執行.class檔案
(一)mac環境下,echo $JAVA_HOME 一般輸出為空,但有時候某些構件會需要有javahome的配置,這時就需要把Java home配置好。 步驟: 1, 命令列輸入: /usr/libexec/java_home 我的環境輸出是 /Library/Java/JavaVi
第一次團隊作業(團隊風采)
團隊作業 1、隊名隊長去世了2、團隊成員的姓名與學號211606377 覃一霸(隊長)211606346 張江波211606371 劉治江211606384 夏培華211606332 王猷敏211406263 陳珍211506319 林華偉211506332 熊哲琛3、隊長的部落格連結https://www
GeoMesa編譯與二次開發專欄(3) — GeoMesa原始碼編譯
前言 1、參考:GeoMesa官方英文文件:https://www.geomesa.org/documentation/developer/introduction.html 2、本篇介紹瞭如何編譯GeoMesa原始碼,即官方文件中所謂的從原始碼構建GeoMesa,以及對GeoM
GeoMesa編譯與二次開發專欄(2) — GeoMesa簡介
本篇參考的文件與部落格: 1、GeoMesa官網介紹:https://www.geomesa.org/documentation/index.html 2、阿里雲-GeoMesa開發指南:https://help.aliyun.com/document_detail/87287.html
GeoMesa編譯與二次開發專欄(1) — 開篇
開篇前言 1、近期因專案需要,筆者開始研究利用GeoMesa-Kafka儲存“流式”資料(例如動態的軌跡點資料,攝像頭的音、視訊流資料等)。採用邊學習邊總結的方式,筆者定期對研究進行總結,方得此專欄。 2、由於專案需求的限定,本專欄的原始碼編譯、使用者手冊、入門教程暫時主要限於