jpa对表的crud

1.1.  Jpa对表的crud操作

1.1.1.  增加


public
void
save() {

Person person = new Person("aaa",121);

entityManager.persist(person);//持久化一个对象,将数据保存到数据库中

}

1.1.2.  修改


public
void
update(){

Person person = entityManager.find(Person.class, 1);//相当于hibernate的get方法,不会延迟加载,没有找到会返回null

person.setName("bbb");

}

1.1.3.  删除


public
void
delete(){

Person person = entityManager.find(Person.class, 3);

entityManager.remove(person);

}

1.1.4.  查询


public
void
findPersonById(){

//相当于hibernate的get方法,不会延迟加载,没有找到会返回null

Person person = entityManager.find(Person.class, 1);

entityManager.clear();

System.out.println(person.getName());

}

public
void
findPersonById2(){

//相当于hibernate的load方法,不会延迟加载,没有找到在真正使用的时候会报异常

Person person = entityManager.getReference(Person.class, 1);

entityManager.clear();//将所有的持久态的对象变为游离态

//System.out.println(person.getName());//报异常

entityManager.merge(person);//将游离态的对象变为持久态

}

1.1.5.  源代码


PersonDao.java


package com.morris.dao.impl;

import javax.persistence.EntityManager;

import javax.persistence.Persistence;

import org.junit.AfterClass;

import org.junit.BeforeClass;

import
org.junit.Test;

import com.morris.entity.Person;

public
class
PersonDao {

private
static
EntityManager entityManager;

@BeforeClass

public
static void
before() {

entityManager = Persistence.createEntityManagerFactory("jpaDemo").createEntityManager();

entityManager.getTransaction().begin();

}

@Test

public
void
findPersonById(){

//相当于hibernate的get方法,不会延迟加载,没有找到会返回null

Person person = entityManager.find(Person.class, 1);

//System.out.println(person.getName());

entityManager.clear();

System.out.println(person.getName());

}

@Test

public
void
findPersonById2(){

//相当于hibernate的load方法,不会延迟加载,没有找到在真正使用的时候会报异常

Person person = entityManager.getReference(Person.class, 1);

entityManager.clear();//将所有的持久态的对象变为游离态

//System.out.println(person.getName());//报异常

entityManager.merge(person);//将游离态的对象变为持久态

//System.out.println(person.getName());//报异常

}

@Test

public
void
save() {

Person person = new Person("aaa",121);

entityManager.persist(person);//持久化一个对象,将数据保存到数据库中

}

@Test

public
void
delete(){

Person person = entityManager.find(Person.class, 3);

entityManager.remove(person);

}

@Test

public
void
update(){

Person person = entityManager.find(Person.class, 1);//相当于hibernate的get方法,不会延迟加载,没有找到会返回null

person.setName("bbb");

}

@AfterClass

public
static void
after(){

entityManager.getTransaction().commit();

entityManager.close();

}

}

时间: 2024-08-02 07:37:40

jpa对表的crud的相关文章

使用MyBatis对表执行CRUD操作

一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-ma

MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

本文中使用到的测试环境是上一篇博文中的测试环境. 一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis

MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(二)--使用MyBatis对表执行CRUD操作 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对users表执行CRUD操作.本文中使用到的测试环境是上一篇博文中的测试环境. 一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMa

mybatis学习(二)----对表进行CRUD操作

一.使用MyBatis对表执行CRUD操作--基于XML的实现 userMapper.xml映射文件如下: 1 <?xml version="1.0" encoding="utf-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&g

【Mybatis】MyBatis对表执行CRUD操作(三)

本例在[Mybatis]MyBatis配置文件的使用(二)基础上继续学习对表执行CRUD操作 使用MyBatis对表执行CRUD操作 1.定义sql映射xml文件(EmployeeMapper.xml) 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "htt

JPA的入门CRUD

主要目的: 操作实体类就相当于操作数据库表 建立两个映射关系: 实体类和表的映射关系 实体类中的属性和表中字段的映射关系 不在关注sql语句 常见的orm框架:Mybatis(ibatis).Hibernate.Jpa JPA的全称是Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基于ORM的规范,内部是由一系列的接口和抽象类构成. JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些

【原】无脑操作:IDEA + maven + SpringBoot + JPA + EasyUI实现CRUD及分页

背景:上一篇文章的界面太丑.没有条件查询功能.所以做一些改进,整合EasyUI做实现.(仅以此文纪念表格中出现的这些朋友工作六周年,祭奠一下逝去的青春^_^) 一.开发环境(参照上一篇文章) 补充:EasyUI直接从官网随便下载一个版本即可,本文用的版本是 1.3.3 二.程序结构:java目录下都是服务端代码,resources目录下templates目录存放页面文件,static目录下存放JavaScript文件.CSS文件.图片等资源文件 三.具体实现(Talk is cheap.Show

用Springboot+Jpa实现学生CRUD操作(含前端页面,含分页,自定义SQL)

在数据库中建student表 建包 1.编写entity包下实体类Student (一个Javabean规范) package com.example.stu.kudestu.stu.entity; import javax.persistence.*; @Entity @Table(name = "student") //@Entity 应用在实体类上 @Table(name = "student") 应用在实体类上,并且name属性为数据库表名 public c

MyBatis 学习总结 02 对表执行增删改查(CRUD)操作 OLD

 可以对上一节中使用mybatis打开一次session的业务逻辑进行封装,封装的成工具类命名为: MyBatisUtil package com.mybatis.util; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlS