`
加菲学Java
  • 浏览: 131315 次
  • 性别: Icon_minigender_1
  • 来自: 扬州
社区版块
存档分类
最新评论

JPA学习1

    博客分类:
  • JPA
阅读更多

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>
 

建立实体 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源文件/jpa学习

    jpa jpa规范 jpa源码 jpa jpa规范 jpa源码

    jpa 全面学习资料

    jpa 全面学习资料 入门 实战 示例 jpa开发手册 JPA_全面讲解 JPA使用入门_基础 JPA学习笔记 JPA注解 JPA简介

    JPA学习文档笔记

    JPA入门学习笔记,包含实体表的关联映射

    JPA学习中文文档

    JPA包括以下3方面的技术: RM映射元数据,JPA支持XML和JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中; JPA 的API,用来操作实体对象,执行CRUD操作,框架...

    JPA学习资料 JPA学习资料

    1.JPA概述 JPA(Java Persistence API)作为 Java EE 5.0 平台标准的 ORM 规范,将得到所有 Java EE 服务器的支持。Sun 这次吸取了之前 EJB 规范惨痛失败的经历,在充分吸收现 有 ORM 框架的基础上,得到了一个易于...

    jpa学习路线图 Java持久层API

    JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将...尚硅谷jpa学习路线图思维导图,涵盖了jpa框架从基础知识到高级应用的内容,帮助大家尽快掌握jpa开发。

    Java JPA 学习资料 合集

    JPA 规范部分详细的介绍了 JPA 中实体 Bean 的定义,并介绍了实体 Bean 支持的注释、全新的查询语言、实体管理接口、容器实现规范等内容。 JPA 标准制定过程中充分吸收了目前已经出现的所有持久化技术的所有优点,...

    JPA_学习过程整理

    最近比较清闲,终于有空好好把传智的jpa视频整理了一些,因为每次复习都看视频比较麻烦,索性自己整理一份文档,方便查看。 针对jpa入门级概念做了解释; 有一些基本的增删改查例子,及...重点学习一对多,多对多关系;

    JPA学习代码资料

    这是一个jpa(hibernate)的学习代码,是我学习JPA的总结,包含三个案例,一对一、一对多、多对多 。 eclipse工具编码为utf-8

    jpa学习笔记

    java jee技术,jpa的使用接受学习笔记。

    JPA学习笔记(高手笔记录)

    JPA学习笔记

    JPA学习资料与例子

    JPA JPA学习资料 JPA学习资料与例子,希望对你有帮助

    传智播客——JPA学习笔记

    传智播客——JPA学习笔记 网络上有一份pdf格式的《JPA学习笔记》,但是内容排版有点乱,而且有缺失的部分,小弟从原来的blog处拷贝出来,并加以排版,制作成了chm格式的,大家应该知道chm格式比较适合作为参考资料或...

    JPA学习笔记-EJB-04JPA关联映射总结

    JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射

    JPA参考文档 JPA参考文档

    JPA学习参考文档 JPA学习参考文档 JPA学习参考文档

    JPA学习大全.docx

    Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。...学习并使用 Spring Data JPA 可以极大提高开发效率!

    JPA学习笔记

    jpa入门级教程,有jpa基础,环境搭建,常用注解,jpa映射,以及jpql介绍和常见异常.

    jsf、openJpa学习

    jsf 入门知识 ,jsf标签,jsf与openJpa整合,jsf与Spring整合

    JPA讲解视频

    JPA的使用 关于基于Hibernate的JPA

    Spring Data JPA学习

    Spring Data JPA学习以及配置步骤

Global site tag (gtag.js) - Google Analytics