簡(jiǎn)介
Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架坑匠,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,它將POJO與數(shù)據(jù)庫(kù)表建立映射關(guān)系卧惜,是一個(gè)全自動(dòng)的orm框架厘灼,hibernate可以自動(dòng)生成SQL語(yǔ)句夹纫,自動(dòng)執(zhí)行,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)设凹。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合舰讹,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用闪朱,最具革命意義的是月匣,Hibernate可以在應(yīng)用EJB的JaveEE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任奋姿。
用過(guò)hibernate的道友應(yīng)該都知道锄开,使用hibernate,我們只要建好數(shù)據(jù)庫(kù)称诗,然后直接新建實(shí)體類萍悴,加上相應(yīng)的注解,hibernate就會(huì)幫我自動(dòng)創(chuàng)建或者更新數(shù)據(jù)表粪狼。
下面記一下hibernate的相關(guān)坑點(diǎn):
新建一個(gè)簡(jiǎn)單的hibernate項(xiàng)目 spring_hibernate退腥,目錄如下:
目錄
新建一個(gè)MySQL數(shù)據(jù)庫(kù) hibernate狡刘,不用建表;
數(shù)據(jù)庫(kù)
引入hibernate困鸥、MySQL依賴
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<!-- 添加JPA依賴嗅蔬,官網(wǎng)描述支持spring data JPA 和hibernate-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.5.3.Final</version>
</dependency>
新建實(shí)體類 ClassInfo.java
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "t_class_info")
@Data
public class ClassInfo{
@Id
@Column(name = "class_id")
private String classID;
@Column(name = "class_name")
private String className;
@Column(name = "class_type")
private String classType;
}
配置application.yml文件
spring:
datasource:
url: jdbc:mysql://localhost:3306/hibernate?useunicode=true&characterEncoding=utf8
driver-class-name: com.mysql.jdbc.Driver
username: 你的賬戶
passw-ord: 你的密碼
jpa:
hibernate:
ddl-auto: update
show-sql: true
properties:
hibernate:
dialect: org.hibernate.dialect.MySQLDialect
naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
current_session_context_class: org.springframework.orm.hibernate4.SpringSessionContext
ok,運(yùn)行項(xiàng)目疾就,查看數(shù)據(jù)庫(kù)澜术。
啟動(dòng)成功
嗯,就是這么簡(jiǎn)單bD穹稀!
但是姑荷,這時(shí)候如果你先修改某個(gè)屬性的一些約束盒延,然后重啟項(xiàng)目,它并不會(huì)更新到數(shù)據(jù)庫(kù)鼠冕,如下修改屬性class_name 的長(zhǎng)度添寺、唯一性約束等:
只能自己手動(dòng)去數(shù)據(jù)庫(kù)做修改,巨坑懈费;僅在此記錄一下计露,便于各位道友時(shí)常來(lái)翻閱一下;
好了,若覺(jué)得文章還不錯(cuò)票罐,記得點(diǎn)贊評(píng)論轉(zhuǎn)發(fā)哦2嫒ぁ!胶坠!