【Hibernate】—Hibernate+mysql 環境搭建+入門例項
一直從事SSH和SSM的專案開發,結合實戰,系統的對每一部分進行了一次系統的學習。下面來簡單介紹Hibernate+mysql的環境搭建和向資料庫中插入一條資料;
Hibernate是一個開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝,它將POJO與資料庫表建立對映關係,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。
一.環境搭建
1.建立java專案
2.建立User Libray,引入jar包
建立User Libray來管理依賴的jar包,把所有要引入的jar包加入到User Libray中,然後把建立的User Libray引入到專案中;
引入jar包到建立的User Libray中
1.在Hibernate的原始碼檔案lib下的所有依賴包
2.加入Hibernate的核心包hibernate3.jar
3.Hibernate與資料庫操作,引入mysql的jar包
3.核心配置檔案hibernate.cfg.xml檔案,完成基本配置
1.在Hibernate原始碼,etc檔案中找到hibernate.cfg.xml核心配置檔案,在後面的專案中根據需求進行修改內容。
2.核心配置檔案中的內容,要去Hibernate原始碼,etc下面的hibernate.properties檔案中,查詢並根據專案需求進行配置。
3.檔案放到src目錄
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 配置資料庫連結 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">fxq123</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- mysql資料庫 -->
<property name="hibernate.show_sql">true</property><<span style="font-family: SimSun;">!-- 顯示sql語句 --></span>
<property name="hibernate.format_sql">true</property>
<mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/><span style="font-family: SimSun;"><!-- 引入Users實體和資料庫的對映檔案 --></span>
</session-factory>
</hibernate-configuration>
4.log4j引入
1.在Hibernate原始碼,etc檔案中找到log4j.properties核心配置檔案,根據需要對檔案進行簡單修改;
2.檔案放到src目錄
二.例項
1.實體
package com.bjpowernode.hibernate;
import java.util.Date;
public class User {
private String id;
private String name;
private String password;
// 建立日期
private Date createTime;
// 失效日期
private Date expireTime;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date dateCreatetime) {
this.createTime = dateCreatetime;
}
public Date getExpireTime() {
return expireTime;
}
public void setExpireTime(Date expireTime) {
this.expireTime = expireTime;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password
+ ", createTime=" + createTime + ", expireTime=" + expireTime
+ "]";
}
}
2.建立實體和表的對映檔案User.hbm.xml檔案
到Hibernate的原始碼hibernate-3.2\eg\org\hibernate\auction資料夾下,找 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.bjpowernode.hibernate.User" >
<!-- 主鍵生成策略 -->
<id name="id">
<generator class="uuid"></generator>
</id>
<property name="name"/>
<property name="password"/>
<property name="createTime"/>
<property name="expireTime"/>
</class>
</hibernate-mapping>
3.根據實體和實體與表的對映檔案User.hbm.xml檔案,建立資料庫表
package com.bjpowernode.hibernate;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
//將hbm轉為ddl
//轉為資料庫
public class ExportDB {
public static void main(String[] args) {
// 預設讀取hibernate.cfg.xml檔案,使用預設名稱;
// 建立配置物件
Configuration cfg = new Configuration().configure();
// 建立SchemaExport物件
SchemaExport export = new SchemaExport(cfg);
export.create(true, true);
}
}
4.向資料庫中插入資料庫
package com.bjpowernode.hibernate;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// 讀取Hibernate.cfg.xml 檔案
Configuration cfg = new Configuration().configure();
// 建立sessionFactory
SessionFactory sessionFactory = cfg.buildSessionFactory();
// 取得Session
Session session = null;
try {
session = sessionFactory.openSession();
// 開啟事務
session.beginTransaction();
User user = new User();
user.setName("張三");
user.setPassword("123");
/*************** 向資料庫中插入日期型別-Start ***************************/
String datestr = new Date().toString();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
"EEE MMM dd HH:mm:ss z yyyy", Locale.US);
Date date = simpleDateFormat.parse(datestr);
simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dateCreatetime = simpleDateFormat.parse(simpleDateFormat
.format(date));
Date dateExpireTime = simpleDateFormat.parse(simpleDateFormat
.format(date));
/*************** 向資料庫中插入日期型別-End ***************************/
user.setCreateTime(dateCreatetime);
user.setExpireTime(dateExpireTime);
// 儲存User物件
session.save(user);
// 提交事務
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
if (session != null) {
if (session.isOpen()) {
// 關閉session;
session.close();
}
}
}
}
}
總結:
相關文章
- Hibernate(二):Hibernate搭建開發環境+簡單例項開發環境單例
- FreaMarker入門教程,環境整合到使用例項
- golang 入門之環境搭建Golang
- Mule 入門之:環境搭建
- 入門(一)搭建GAE環境
- Rest Webservice 環境搭建流程和例項RESTWeb
- jafka環境搭建步驟--例項可用
- Elasticsearch快速入門和環境搭建Elasticsearch
- SpringMVC入門與環境搭建SpringMVC
- Java開發-搭建hibernate環境Java
- Vue.js入門之環境搭建Vue.js
- Spark程式設計環境搭建及WordCount例項Spark程式設計
- 懶載入例項--hibernate
- Hibernate基於Maven入門例項,與MyBatis比對MavenMyBatis
- Flutter入門之Mac最詳環境搭建FlutterMac
- Flutter入門教程(二)開發環境搭建Flutter開發環境
- Mac 後端入門開發環境搭建Mac後端開發環境
- Struts+spring+Hibernate+Mysql--環境搭建SpringMySql
- docker入門到自動化搭建php環境DockerPHP
- 安卓開發入門(一)開發環境搭建安卓開發環境
- 【R語言入門】R語言環境搭建R語言
- vue入門(安裝環境與搭建專案)Vue
- Python資料分析入門(一):搭建環境Python
- lua入門之環境搭建、第一個demo
- 【MyBatis】3:MyBatis環境搭建及入門程式示例MyBatis
- Flutter開發入門之開發環境搭建(VSCode搭建Flutter開發環境)Flutter開發環境VSCode
- TypeScript入門例項TypeScript
- Websocet 入門例項Web
- SoapUI入門例項UI
- Flutter 入門例項Flutter
- Kafka入門例項Kafka
- Struts入門例項
- Oracle10g RAC環境下DataGuard備庫搭建例項Oracle
- 《Golang 從入門到跑路》之開發環境搭建Golang開發環境
- Laravel5.8 入門系列一 搭建環境,Hello World!Laravel
- Django入門指南-第1部分(環境搭建)Django
- PHP入門-Window 下利用Nginx+PHP 搭建環境PHPNginx
- C++入門(3):C++開發環境搭建C++開發環境