`

JPA基础

    博客分类:
  • JPA
jpa 
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<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">
    
	<!-- 定义一个持久化单元 -->
	<persistence-unit name="itcast" transaction-type="RESOURCE_LOCAL">
		
		<!-- 相关于数据库的一些属性信息 -->
		<properties>
		     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
		     <property name="hibernate.hbm2ddl.auto" value="update"/>
		     <property name="hibernate.show_sql" value="true"/>
		     
		      <property name="hibernate.format_sql" value="true" />
			<!-- sqlServer的驱动器 -->
			<property name="hibernate.connection.driver_class"
				value="com.mysql.jdbc.Driver" />
			<!-- 设置sqlServer路径以及数据库名 -->
			<property name="hibernate.connection.url"
				value="jdbc:mysql://localhost/jpa" />
			<!-- 数据库的用户名 -->
			<property name="hibernate.connection.username" value="root" />
			<!-- 数据库的密码 -->
			<property name="hibernate.connection.password" value="root" />
		</properties>
	</persistence-unit>
</persistence>


package cn.itcast.bean;

public enum Gender {
	MALE,FEMALE
}


package cn.itcast.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.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

@Entity
@Table(name="t_person")
public class Person {

	private Integer id;
	private String name;
	private Date birthday;
	private Gender gender = Gender.MALE;
	private String info;  //大文本
	public Byte[] file;
	private String imagepath;
	
	@Id
	@GeneratedValue
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}	
	@Column(length=10,nullable=false,name="personName")
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Temporal(TemporalType.DATE)
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	@Enumerated(EnumType.STRING)
	@Column(length=6,nullable=false)
	public Gender getGender() {
		return gender;
	}
	public void setGender(Gender gender) {
		this.gender = gender;
	}
	@Lob
	public String getInfo() {
		return info;
	}
	public void setInfo(String info) {
		this.info = info;
	}
	@Lob
	@Basic(fetch=FetchType.LAZY)
	public Byte[] getFile() {
		return file;
	}
	public void setFile(Byte[] file) {
		this.file = file;
	}
	@Transient					//在数据库中不映射
	public String getImagepath() {
		return imagepath;
	}
	public void setImagepath(String imagepath) {
		this.imagepath = imagepath;
	}
	
}



package com.bjsxt.test;

import java.util.Date;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.junit.BeforeClass;
import org.junit.Test;

import cn.itcast.bean.Person;


public class PersonTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}
	
	@Test
	public void save() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();
		Person person = new Person();
		person.setName("test");
		person.setBirthday(new Date());
		em.persist(person);
		em.getTransaction().commit();
		em.close();
		factory.close();
	}
	
	@Test
	public void getPerson() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
		EntityManager em = factory.createEntityManager();
		Person person = em.find(Person.class,1);
		System.out.println(person.getName());
		em.close();
		factory.close();
	}
	
	@Test
	public void getPerson2() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
		EntityManager em = factory.createEntityManager();
		Person person = em.getReference(Person.class,1);
		System.out.println(person.getName());
		em.close();
		factory.close();
	}
	
	@Test
	public void updatePerson() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();
		Person person = em.find(Person.class,1);
		person.setName("老刁");
		em.getTransaction().commit();
		em.close();
		factory.close();
	}
	//new
	//managed 托管
	//游离(脱管)
	//删除
	@Test
	public void updatePerson2() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();
		Person person = em.find(Person.class,1);
		em.clear();
		person.setName("老张");
		em.merge(person);
		em.getTransaction().commit();
		em.close();
		factory.close();
	}
	
	@Test
	public void deletePerson() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
		EntityManager em = factory.createEntityManager();
		em.getTransaction().begin();
		Person person = em.find(Person.class,1);
		em.remove(person);
		em.getTransaction().commit();
		em.close();
		factory.close();
	}

		@Test
	public void query() {
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
		EntityManager em = factory.createEntityManager();
		Query query = em.createQuery("select o from Person o where o.id = ?1");
		query.setParameter(1, 2);
		Person person = (Person)query.getSingleResult();
		System.out.println(person.getName());
		em.close();
		factory.close();
	}
	
}

分享到:
评论

相关推荐

    SSH+JPA 基础环境

    SSH+JPA基础环境搭建教程 SSH框架,全称为Struts2、Spring和Hibernate的集成,是Java Web开发中常用的一套技术栈。本环境基于SSH,并引入了JPA(Java Persistence API)作为数据持久层的解决方案,同时配合MySQL...

    JPA基础语法资料--JPA_Basic

    **JPA基础语法详解** Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它提供了一种对象/关系映射(ORM)机制,使得开发人员可以使用面向对象的方式来操作数据库,而无需直接编写...

    JPA基础教程(中文版)

    **JPA基础教程详解** Java Persistence API (JPA) 是Java EE 5.0平台上的一个标准ORM(Object-Relational Mapping)规范,它的引入旨在简化对象持久化的开发过程,并试图统一ORM技术。JPA的设计吸取了之前EJB规范的...

    JPA 基础教程 一本适合初学者的教程

    通过阅读《JPA基础教程》这本书,初学者将能够理解这些核心概念,并学会如何在实际项目中应用JPA,提升数据库操作的效率和代码的可维护性。书中可能还会包含大量的示例代码和实战练习,以帮助读者巩固理解并提升实践...

    Spring-Data-JPA基础教程

    本文档是Spring-data-jpa的介绍以及基本用法,可以很好的帮助初学者阅读以及使用。

    Spring Data JPA从入门到精通

    'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、定义查询方法、注解式查询方法、@Entity实例里面常用注解详解、JpaRepository扩展详解、JPA的MVC扩展REST支持、DataSource的配置、乐观...

    jpa的学习---jpa demo工程

    1. **JPA基础** JPA通过ORM(Object-Relational Mapping)技术,将Java对象与数据库表进行映射,使得开发者可以使用面向对象的方式来操作数据库。它定义了一组API,允许开发者定义实体类、关系映射、事务控制等,而...

    04_JPA详解_第一个JPA实例与JPA主键生成策略.zip

    ### JPA基础 1. **JPA简介**: JPA是Java EE的一部分,它提供了一套规范,定义了如何将Java对象持久化到关系数据库中。通过JPA,开发者可以使用面向对象的方式来处理数据库操作,而不是直接编写SQL语句。 2. **实体...

    JPA所有教学资料.rar

    **"jpa基础教程.rar"** 可能包含一系列深入JPA基本概念的教程,包括实体管理,查询语言(JPQL和Criteria API),以及事务处理。学习这些内容是掌握JPA的基础。 总的来说,JPA是一个强大的工具,它简化了Java应用的...

    JPA教程(全部为PDF格式的电子书)

    ### 第一部分:JPA基础 《JPA_Basic.pdf》这本书可能涵盖了以下核心概念: 1. **ORM概述**:解释了ORM技术如何将Java对象与数据库表进行映射,减少手动SQL编写的工作量。 2. **实体(Entity)**:定义了JPA中的...

    JPA/JBOSS/EJB基础教程PDF资料

    JPA基础教程通常会涵盖以下内容:JPA的基本概念,如实体、实体管理器、查询语言(JPQL)等;如何配置JPA,包括persistence.xml文件的设置;如何进行实体关系映射,如一对一、一对多、多对多关系;事务管理和并发控制...

    JPA使用手册+API+JAR

    “JPA_Basic.pdf”很可能是一个关于JPA基础的教程或参考手册,涵盖了JPA的关键特性和用法。它可能详细介绍了如何定义实体类、配置数据源、创建实体管理器,以及如何使用JPQL进行查询。此外,还可能涉及了JPA的高级...

    05_传智播客JPA详解_日期_枚举等字段类型的JPA映射

    1. **JPA基础**: JPA通过提供API和注解,使得开发者可以使用面向对象的方式来操作数据库,而无需编写SQL语句。它实现了ORM框架的主要功能,包括对象持久化、事务管理、查询语言(JPQL)等。 2. **日期字段映射**...

    hibernate_ jpa.jar

    一、Hibernate JPA基础 1. **实体(Entity)**:在Hibernate JPA中,实体是数据库表的映射,通过@Entity注解标识,每个实体类对应数据库中的一个表。 2. **实体关系(Entity Relationships)**:实体之间可以通过...

    Spring Data JPA Examples 官方源码

    1. **Spring Data JPA基础** Spring Data JPA通过提供一套高级的Repository接口,使得开发者无需编写大量的DAO层代码即可实现对数据库的基本操作。例如,`CrudRepository`接口提供了增删查改的基本方法,而`Jpa...

    JPA图书管理(连接数据库)

    ### JPA基础知识 1. **实体(Entity)**: 在JPA中,实体是Java类,它代表数据库中的表。这些类需要使用`@Entity`注解,并且通常有一个对应的主键字段,用`@Id`注解标记。 2. **实体管理器(EntityManager)**: 这是...

Global site tag (gtag.js) - Google Analytics