JPA总结

首先,JPA不是ORM框架,而是SUN官方提出的JAVA持久化规范。JPA整合了现有的Hibernate、TopLink等ORM框架,具有易于使用、伸缩性强等优点。下面我们就来学习关于JPA的知识。

1. JPA规范要求在类路径的META-INF目录下放置persistence.xml,文件的名称是固定的,配置模版可见hibernate-entitymanager开发包
2. JPA ORM映射元素数据有XML和注解两种方式,这里我们学习基于注解的方式,那么我们来谈谈JPA有哪些常用的注解
1)在实体bean中用注解@Entity来指定实体以让jpa知道生成数据库中的表
2)在实体bean中用注解@Column(length,nullable,name)指定数据库中的表的字段的长度,是否为空即字段的名字
3)在实体类的前面用注解@Table(name="xx")指定生成表的名字
4)在实体类中用注解@Temporal(TemporalType.Date)指定生日的时间类型
5) @Enumerated(EmumType.STRING//保存到数据库中是索引还是字符串)注解指定枚举类型
6) @Lob声明属性对应的数据库字段为大文本类型,可以存放大的数据(文本和字节)
7) @Transient不成为持久化字段及不跟数据库中的字段形成映射
8) @Basic(fetch=FetchType.LAZY)//是否把数据装载到内存中延迟初始化,第一次访问的时候在加载数据,一般用在大数据存放
9) @Embeddable指定联合组键
3. JPA的增删改查:
1)读取数据不要开启事务,只要有更改数据的动作才需要开启事务
2)增加数据:em.persist(new Person("老黎"));//插入
3)删除数据:em.remove(person); //删除(注意有外键约束时,需要先解除外键约束才能删除)
4)更新数据:

方法一:
Person person = em.find(Person.class,1);
person.setName("老黎");(1).跟事务关联在一起了(2)对象处于托管状态
方法二:
Person person = em.find(Person.class,1);
em.clear();//把试题管理器中的所有实体变成游离状态
person.setName("老黎");//现在还是不可以,实体还是处于游离状态
em.merge(person);//把游离状态中的实体bean同步到数据库
	5) 查看数据:
方法一:
Person person = em.find(Person.class,1);//查看数据,1为对象在数据库中的id值
方法二:
Person person = em.getReference(Person.class,1);//没有值不出现异常,只person.getName()的时候报异常
em.refresh(person);//进行数据库刷新,拿出最新的数据
4.JPA中四种数据库状态:
(1)新建:刚new出对象来的时候
(2)托管:从数据库中查出来的时候
(3)游离(即脱管)
(4)删除

5.JPA的查询语句:
Query query = em.createQuery("select o from Person o");//必须有select o,id=等于后面不要直接写值以免sql注入
(1)匿名查询用:id
(2)未参数查询?1即:where o.id=?1//指明?的值从索引1开始
uery.getSingleResult


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值