1导入相应的
jar
包
2在项目的
src
下新建
META-INF
文件夹,再建立
persistence.xml
文件。
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<!-- 一堆实体bean的集合 -->
<!-- 本地事务 全局事务 -->
<persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL">
<properties>
<!-- 使用 MySQL 5.0方言 -->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <!--jdbc driver -->
<property name="hibernate.connection.username" value="root" /> <!--数据库登录名 -->
<property name="hibernate.connection.password" value="sa" /> <!--登录用户密码 -->
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpa" /> <!--数据库连接地址 -->
</properties>
</persistence-unit>
</persistence>
3 建立实体
bean
Person.java
package com.yk.jpa.bean;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
@Entity
//@Table(name="xxx")
public class Person {
private Integer id;
private String name;
private Date birthday; //1987-12-10
private Gender gender=Gender.MAN;
private String info;
private Byte[] file;
private String imagepath;
//不希望此字段成为持久化字段
@Transient
public String getImagepath() {
return imagepath;
}
public void setImagepath(String imagepath) {
this.imagepath = imagepath;
}
//二进制文件
@Lob
//只要不访问,就不会把此数据装载到内存中,初次访问person的时候不会装载,只有在访问此数据的时候才会装载
@Basic(fetch=FetchType.LAZY)
public Byte[] getFile() {
return file;
}
public void setFile(Byte[] file) {
this.file = file;
}
//大文本类型
@Lob
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Enumerated(EnumType.STRING)
@Column(length=5,nullable=false)
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}
//设置日期的格式(1987-12-10)
@Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public Person(){} //无参的构造函数
public Person(String name) {
this.name = name;
}
//实体标识
//@Id
//主键生成策略
//@GeneratedValue
/*@GeneratedValue(strategy=GenerationType.AUTO)
* 因为使用的策略是AUTO,所以可以省略不写,是默认值,
* hibernate会自动根据方言判断使用的是什么数据库而使用哪种主键生成方式
**/
@Id @GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(length=10,nullable=false)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4 编写测试类
PersonTest.java (Junit4
进行测试
)
public class PersonTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Test
public void save(){
EntityManagerFactory factory=Persistence.createEntityManagerFactory("jpa"); //不执行下面的,已经完全可以建立表
//-->sessionFactory-->session-->begin事务
EntityManager em=factory.createEntityManager();
em.getTransaction().begin(); //开始事务
//session.save()-->persist()(推荐使用)
em.persist(new Person("JPA学习"));
em.getTransaction().commit(); //提交事务
em.close();
factory.close();
}
}
此时查看MySQL
数据库:
- 大小: 128.5 KB
- 大小: 109.6 KB
- 大小: 69.6 KB
- 大小: 6.2 KB
- 大小: 4.7 KB
- 大小: 2.2 KB
分享到:
相关推荐
总之,JPA作为一个强大的ORM框架,为Java开发者提供了统一的、标准的方式来处理数据库操作,而JPA源码的学习可以帮助我们深入了解其内部机制,提高开发效率和代码质量。通过对JPA-2.0.src的学习,我们可以掌握JPA ...
### JPA学习文档知识点概述 #### 1. JPA简介 - **定义**: JPA (Java Persistence API) 是由Sun官方提出的一种Java持久化规范,旨在简化Java应用程序中关系型数据库的操作过程。其核心目标是统一现有的ORM (Object-...
JPA学习笔记** 学习笔记可能涉及更深入的话题,如: - **懒加载(Lazy Loading)与急加载(Eager Loading)**: 管理关联对象的加载时机。 - **继承映射(Inheritance Mapping)**: 包括单表继承、联合继承和表格...
JPA包括以下3方面的技术: RM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; JPA 的API,用来操作实体对象,执行CRUD操作,框架...
1. **ORM映射元数据**:JPA支持XML和JDK 5.0注解两种方式定义对象与数据库表的映射。这些元数据描述了实体对象和数据库表之间的关系,使得JPA可以自动将对象持久化到数据库中。 2. **JPA API**:提供了一套接口和类...
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将...尚硅谷jpa学习路线图思维导图,涵盖了jpa框架从基础知识到高级应用的内容,帮助大家尽快掌握jpa开发。
JPA 规范部分详细的介绍了 JPA 中实体 Bean 的定义,并介绍了实体 Bean 支持的注释、全新的查询语言、实体管理接口、容器实现规范等内容。 JPA 标准制定过程中充分吸收了目前已经出现的所有持久化技术的所有优点,...
【JPA学习笔记】 JPA(Java Persistence API)是Java平台上的一个ORM(Object-Relational Mapping)规范,它提供了一种将Java对象与数据库表进行映射的机制,简化了数据库操作。JPA允许开发者使用面向对象的方式...
最近比较清闲,终于有空好好把传智的jpa视频整理了一些,因为每次复习都看视频比较麻烦,索性自己整理一份文档,方便查看。 针对jpa入门级概念做了解释; 有一些基本的增删改查例子,及...重点学习一对多,多对多关系;
学习和掌握JPA对于开发Java企业级应用至关重要,因为它简化了数据库操作,使得开发者可以更专注于业务逻辑,而不是底层的数据访问细节。同时,了解JPA还可以帮助你更好地理解和使用其他ORM框架,如Hibernate和...
**JPA学习大全** 在Java开发中,Spring Data JPA是一个强大的工具,它基于ORM(对象关系映射)框架和JPA(Java Persistence API)规范,为开发者提供了一种简化数据库访问和操作的方式。通过使用Spring Data JPA,...
### JPA 学习笔记详解 #### 一、JPA 概述 Java Persistence API (JPA) 是 Sun 公司提出的一种 Java 持久层标准,它为 Java 开发者提供了一种对象关系映射 (ORM) 的工具来管理 Java 应用程序中的关系型数据。JPA ...
学习这些内容可以帮助你深入理解JSF框架及其与OpenJPA和Spring的集成,从而提升你的Web开发技能。通过实践这些示例,你可以更好地掌握如何在实际项目中运用这些技术,构建高效、稳定的Web应用。
这是一个jpa(hibernate)的学习代码,是我学习JPA的总结,包含三个案例,一对一、一对多、多对多 。 eclipse工具编码为utf-8
### 传智播客JPA学习笔记知识点梳理 #### 一、JPA概述与核心价值 - **定义**: JPA (Java Persistence API) 是由 Sun 官方提出的一种 Java 持久化标准,旨在为 Java 开发者提供一套统一的对象-关系映射 (ORM) 工具,...
**JPA学习系列中所有的源文件** 在Java开发中,JPA(Java Persistence API)是Java平台上的一个标准,用于管理关系数据库中的数据。它提供了一种对象/关系映射(ORM)工具,使得开发者可以使用面向对象的方式来操作...
**JPA(Java Persistence ...通过学习这些材料,你可以深入理解JPA的工作原理,如何在Spring环境中使用JPA,以及如何有效地进行数据库操作。这对于任何希望在Java企业级应用开发中使用ORM的开发者来说都是宝贵的知识。
**Java Persistence API (JPA)** 是Java平台上的一个标准,用于管理关系数据库中的数据,它为Java开发者提供了一种对象/...通过学习这些资源,开发者可以更好地理解和运用JPA,提升其在实际项目中的数据库操作能力。
传智播客——JPA学习笔记 网络上有一份pdf格式的《JPA学习笔记》,但是内容排版有点乱,而且有缺失的部分,小弟从原来的blog处拷贝出来,并加以排版,制作成了chm格式的,大家应该知道chm格式比较适合作为参考资料或...
**Java Persistence API (JPA)** 是Java平台上的...以上就是JPA学习笔记中的关键知识点,涵盖了JPA的基本概念、环境配置、对象关系映射、查询语言、事务管理、关联关系等多个方面,对于理解和应用JPA有重要的指导作用。