1,在src下面新建一个META-INF文件夹,在META-INF下面新建一个persistence.xml的配置文件,persistence.xml配置如下:我这里的JPA采用的是Hibernate实现,不用的实现下面的配置文件的内容不一样的。
<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="mengya" transaction-type="RESOURCE_LOCAL">
<properties>
<!-- 方言 -->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="123"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/mp?useUnicode=true&characterEncoding=UTF-8"/>
</properties>
</persistence-unit>
</persistence>
2,配置一个实体Bean如:
package com.mengya.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.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import com.mengya.util.Gender;
//表示实体Bean
@Entity
//设置表名
@Table(name = "PERSON")
public class Person {
private Integer id;
private String name;
private Date birthday;
private String info;
private byte[] file;
private String imagePath;
// 枚举类型
// 设置该列的默认值,在字段后面赋初始值
private Gender sex = Gender.MAN;
public Person() {
}
public Person(String name) {
this.name = name;
}
// 放在get方法上面或字段上面
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
// 设置该列在数据中列名,长度,非空
@Column(name = "p_name", length = 10, nullable = false)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 设置日期的格式为yyyy-MM-dd
@Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
// 取其枚举的值
@Enumerated(EnumType.STRING)
// 取其枚举的索引
// @Enumerated(EnumType.ORDINAL);
@Column(length = 10, nullable = false)
public Gender getSex() {
return sex;
}
public void setSex(Gender sex) {
this.sex = sex;
}
//@Lob表示大的文本字段
//@Basic(fetch=FetchType.LAZY)设置该字段是否懒加载
@Lob @Basic(fetch=FetchType.LAZY)
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
//大的二进制字段
@Lob
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.mengya.util;
public enum Gender {
MAN,WOMAN;
}
测试用例如下:
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import org.junit.BeforeClass;
import org.junit.Test;
import com.mengya.bean.Person;
import com.mengya.util.Gender;
public class PersonTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Test public void save(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("mengya");
EntityManager manager=factory.createEntityManager();
manager.getTransaction().begin();
Person p=new Person();
p.setName("小酱油");
DateFormat df=DateFormat.getDateInstance();
try {
Date d=df.parse("1986-8-25");
p.setBirthday(d);
} catch (ParseException e) {
e.printStackTrace();
}
p.setSex(Gender.WOMAN);
manager.persist(p);
manager.getTransaction().commit();
manager.close();
factory.close();
}
}
分享到:
相关推荐
05_JPA详解_日期_枚举等字段类型的JPA映射.zip 05_JPA详解_日期_枚举等字段类型的JPA映射.zip
JPA批注参考(主要介绍JPA中的相关注解)
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA支持XML和JDK5.0注解两种元数据的形式。 JPA的总体思想和现有Hibernate、TopLink、...
本项目使用Maven+SpringBoot+springDataJPA,实现单表的增删改查
如果使用spring mvc 3.2+和servelt 3+容器(比如tomcat8),那么web.xml和applicationContext.xml都不是必须的,可使用基于注解的配置: 基于配置的集成例子源代码:
JPA注解 详解 1、@Entity(name="EntityName") 必须,name为可选,对应数据库中一的个表 2、@Table(name="",catalog="",schema="") 可选,通常和@Entity配合使用,只能标注在实体的class定义处,表示实体对应的数据库表...
springJpa单标递归树形结构
05_传智播客JPA详解_日期_枚举等字段类型的JPA映射
JPA 的最详细的说明,为你解答每一个注解的使用方法和技巧,帮您快速梳理思路,这是多少个字了????
Eclipse下配置JPA生成数据库表对应的已注解实体类(图文详解),自己亲自配置成功后截图讲解,通过数据库中的表直接生成已经注解好的实体类,很神奇...
jpa入门案例:单表查询,包括分页查询 使用springboot来整合实现
JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解.doc JPA注解....
JPA (注解标签)参考 相当于帮助文档!
JPA的基本注解主要包括@Entity、@Table、@Id、@GeneratedValue、@Basic、@Column、@Transient、@Temporal和@TableGenerator等。
springmvc +shiro+querydsl+jpa框架多数据源配置详细说明,文档包含详细配置说明,测试通过
spring+springmvc+jpa零配置注解开发 不需要在xml中配置任何东西
java程序使用JPA注解详解 JPA注解详解 java 程序使用 JPA注解 详解
JPA注解创建数据库表 和hibernate.cfg.xml 建表