【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();
}
}
}
}
}
總結:
相關文章
- Java開發-搭建hibernate環境Java
- Hibernate基於Maven入門例項,與MyBatis比對MavenMyBatis
- SpringMVC入門與環境搭建SpringMVC
- golang 入門之環境搭建Golang
- Spark程式設計環境搭建及WordCount例項Spark程式設計
- Elasticsearch快速入門和環境搭建Elasticsearch
- Flutter開發入門之開發環境搭建(VSCode搭建Flutter開發環境)Flutter開發環境VSCode
- Flutter入門之Mac最詳環境搭建FlutterMac
- Mac 後端入門開發環境搭建Mac後端開發環境
- Flutter入門教程(二)開發環境搭建Flutter開發環境
- Python資料分析入門(一):搭建環境Python
- Websocet 入門例項Web
- Flutter 入門例項Flutter
- TypeScript入門例項TypeScript
- SoapUI入門例項UI
- docker入門到自動化搭建php環境DockerPHP
- ESP8266 鼓搗記 - 入門(環境搭建)
- vue入門(安裝環境與搭建專案)Vue
- 【R語言入門】R語言環境搭建R語言
- lua入門之環境搭建、第一個demo
- 以QT為例談環境搭建QT
- Hadoop入門(一)之Hadoop偽分散式環境搭建Hadoop分散式
- Laravel5.8 入門系列一 搭建環境,Hello World!Laravel
- 淺談之SpringBoot的環境搭建及快速入門Spring Boot
- 《Golang 從入門到跑路》之開發環境搭建Golang開發環境
- Django入門指南-第1部分(環境搭建)Django
- 使用React搭建初始化環境(React入門)React
- 安卓開發入門(一)開發環境搭建安卓開發環境
- PHP入門-Window 下利用Nginx+PHP 搭建環境PHPNginx
- C++入門(3):C++開發環境搭建C++開發環境
- Django+MySQL 例項入門DjangoMySql
- Web Components 入門例項教程Web
- Vue專案入門例項Vue
- opengl簡單入門例項
- Vue2.0 新手入門 — 從環境搭建到釋出Vue
- Kubernetes入門,使用minikube 搭建本地k8s 環境K8S
- Flutter入坑(一)環境搭建Flutter
- java中Hibernate的環境配置Java
- Docker 搭建 PHP 環境及相關軟體入門到了解DockerPHP