<?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();
}
}
分享到:
相关推荐
里面介绍了一些JPA的基础知识,适合想了解JPA的大虾门
SSH+JPA基础环境搭建教程 SSH框架,全称为Struts2、Spring和Hibernate的集成,是Java Web开发中常用的一套技术栈。本环境基于SSH,并引入了JPA(Java Persistence API)作为数据持久层的解决方案,同时配合MySQL...
**JPA基础语法详解** Java Persistence API(JPA)是Java平台上的一个标准,用于管理关系数据库中的数据。它提供了一种对象/关系映射(ORM)机制,使得开发人员可以使用面向对象的方式来操作数据库,而无需直接编写...
**JPA基础教程详解** Java Persistence API (JPA) 是Java EE 5.0平台上的一个标准ORM(Object-Relational Mapping)规范,它的引入旨在简化对象持久化的开发过程,并试图统一ORM技术。JPA的设计吸取了之前EJB规范的...
通过阅读《JPA基础教程》这本书,初学者将能够理解这些核心概念,并学会如何在实际项目中应用JPA,提升数据库操作的效率和代码的可维护性。书中可能还会包含大量的示例代码和实战练习,以帮助读者巩固理解并提升实践...
本文档是Spring-data-jpa的介绍以及基本用法,可以很好的帮助初学者阅读以及使用。
'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、定义查询方法、注解式查询方法、@Entity实例里面常用注解详解、JpaRepository扩展详解、JPA的MVC扩展REST支持、DataSource的配置、乐观...
1. **JPA基础** JPA通过ORM(Object-Relational Mapping)技术,将Java对象与数据库表进行映射,使得开发者可以使用面向对象的方式来操作数据库。它定义了一组API,允许开发者定义实体类、关系映射、事务控制等,而...
### JPA基础 1. **JPA简介**: JPA是Java EE的一部分,它提供了一套规范,定义了如何将Java对象持久化到关系数据库中。通过JPA,开发者可以使用面向对象的方式来处理数据库操作,而不是直接编写SQL语句。 2. **实体...
**"jpa基础教程.rar"** 可能包含一系列深入JPA基本概念的教程,包括实体管理,查询语言(JPQL和Criteria API),以及事务处理。学习这些内容是掌握JPA的基础。 总的来说,JPA是一个强大的工具,它简化了Java应用的...
### 第一部分:JPA基础 《JPA_Basic.pdf》这本书可能涵盖了以下核心概念: 1. **ORM概述**:解释了ORM技术如何将Java对象与数据库表进行映射,减少手动SQL编写的工作量。 2. **实体(Entity)**:定义了JPA中的...
### 一、JPA基础 1.1 JPA基础 JPA通过元数据定义对象与数据库之间的映射,元数据可以是XML文件或者JDK5.0的注解。实体(Entity)是JPA的核心概念,它是与数据库表相对应的Java类,通常使用`@Entity`注解标记。为了...
JPA基础教程通常会涵盖以下内容:JPA的基本概念,如实体、实体管理器、查询语言(JPQL)等;如何配置JPA,包括persistence.xml文件的设置;如何进行实体关系映射,如一对一、一对多、多对多关系;事务管理和并发控制...
“JPA_Basic.pdf”很可能是一个关于JPA基础的教程或参考手册,涵盖了JPA的关键特性和用法。它可能详细介绍了如何定义实体类、配置数据源、创建实体管理器,以及如何使用JPQL进行查询。此外,还可能涉及了JPA的高级...
1. **JPA基础**: JPA通过提供API和注解,使得开发者可以使用面向对象的方式来操作数据库,而无需编写SQL语句。它实现了ORM框架的主要功能,包括对象持久化、事务管理、查询语言(JPQL)等。 2. **日期字段映射**...
一、Hibernate JPA基础 1. **实体(Entity)**:在Hibernate JPA中,实体是数据库表的映射,通过@Entity注解标识,每个实体类对应数据库中的一个表。 2. **实体关系(Entity Relationships)**:实体之间可以通过...
1. **Spring Data JPA基础** Spring Data JPA通过提供一套高级的Repository接口,使得开发者无需编写大量的DAO层代码即可实现对数据库的基本操作。例如,`CrudRepository`接口提供了增删查改的基本方法,而`Jpa...
1.1 JPA基础 JPA的核心概念包括实体(Entity)、实体管理器(EntityManager)和实体工厂(EntityManagerFactory)。实体是JPA中的核心概念,代表数据库中的表,通常使用`@Entity`注解标识。一个实体必须有一个无参...
### JPA基础知识 1. **实体(Entity)**: 在JPA中,实体是Java类,它代表数据库中的表。这些类需要使用`@Entity`注解,并且通常有一个对应的主键字段,用`@Id`注解标记。 2. **实体管理器(EntityManager)**: 这是...