hibernatedata JPA的 建表插入字段


1.1 jpa 是一個開發規范 是一個ORM框架的開發規范 是SUN 公司定義的 中文名:JAVA持久層API

​ orm : 對象關系映射 是一個解決問題的思路 對對象的操作就是對數據庫的操作

​ 1.2 jpa 的優勢

​ 標准化

​ 容器級特性的支持

​ 簡單方便

​ 操作簡單 創建類跟 創建java普通類一樣方便 只需使用javax.persistence.Entity注釋

​ 查詢能力

支持繼承 支持多態

2 什么是SpringDataJPA

​ Spring Data JPA框架主要針對的是Spring 唯一沒有簡化到業務邏輯代碼 開發者連僅實現持久層業務邏輯的工作都省了,唯一要做的就是生明持久層的接口 其它的都交給Spring Data JPA來幫完成

​ 並不是JPA規范實現 基於原生的jpa 的api 進行了再次的封裝

​ 如果要使用SpringDataJpa 還需要使用Hibernate

創建maven工程

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.hibernate.version>5.0.7.Final</project.hibernate.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--hibernate 對jpa的支持-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${project.hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>${project.hibernate.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>



在resources包中建META-INF/persistence.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<!--配置持久化單元 在配置文件中至少有一個
name 持久化單元的名稱
transaction-type 事物類型
RESOURCE_LOCAL 單數據庫的事物
JTA 分布式事物 跨數據的事物 多個數據庫的事物


-->
<persistence-unit name="myjpa" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="root"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/數據庫名"/>
<!--配置hibernate的屬性-->
<property name="hibernate.show_sql" value="true"></property>
<!--sql語句是否格式化-->
<property name="hibernate.format_sql" value="true"/>
<!--是否自動創建數據庫表
value 可選值 create update none
create 程序自動創建數據庫表 如果表存在 先刪除后創建
update 程序自動創建數據庫表 如果表存在 不創建
none 不會創建
-->
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
</persistence>
entity包
package cn.dy.jpa.entity;

import javax.persistence.*;

/**
* author:dingyi
* time:2019/8/14 0014 16:00
*/
@Entity
@Table(name="cust_stu")
public class Stu {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@Column(name = "Id")
private Long Id;
@Column (name="name")
private String name;
@Column(name = "age")
private Integer age;
@Column(name = "sex")
private String sex;

@Override
public String toString() {
return "Stu{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}
}
測試類:

import cn.dy.jpa.entity.Stu;
import org.junit.Test;

import javax.persistence.*;


/**
* author:dingyi
* time:2019/8/14 0014 16:05
*/
public class TestStu {
@Test
public void firstTest(){
// 1 創鍵一個EntityManagerFactory 對象 使用完關閉
EntityManagerFactory factory = Persistence.createEntityManagerFactory("myjpa");
// 2 使用工廠對象EntityManagerFactory 就是一個連接
EntityManager entityManager = factory.createEntityManager();
// 3 開啟事物
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
// 4 創鍵 Customer 對象

Stu stu = new Stu();
stu.setName("jack");
stu.setAge(123);
stu.setSex("男");

// 5 使用Entitymanager 對象 的persist 方法向數據庫添加數據
entityManager.persist(stu);
// 6 事物提交
transaction.commit();
// 7 關閉連接
entityManager.close();
factory.close();
}
}
 
        
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM