Spring Data JPA 基础第二篇

主要调用工具类JpaUtils类

package cn.itcast.utils;

import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;

/** * 解决静态实体管理器工厂的浪费资源和耗时问题 *     通过静态代码块的形式,当程序第一次访问此工具类时,创建一个公共的实体管理器工厂对象 * * 第一次访问getEntityManager方法:经过静态代码块创建一个factory对象,再调用方法创建一个EntityManager对象 * 第二次访问getEntityManager方法:直接通过一个已经创建好的factory对象,创建EntityManager对象 */public class JpaUtils {    private  static EntityManagerFactory factory;    static {        //1.加载配置文件,创建entityManagerFactory       factory = Persistence.createEntityManagerFactory("myJpa");    }    /**     * 获取EntityManager对象     */    public  static EntityManager getEntityManager(){       return factory.createEntityManager();    }}主要在persistence.xml更改一下把之前的create插入改成update更新
<property name="hibernate.hbm2ddl.auto" value="create"/>

主要的实体类

package cn.itcast.domain;

import javax.persistence.*;

/** * 客户实体类 *     配置映射关系 *        1、实体类和表的映射关系 *        2、实体类中属性和表中字段的映射关系 * @Entity:声明实体类 * @Table:配置实体类和表的映射关系 *       name:配置数据库标的名称 * 2.实体类中属性和表中字段的映射光线 */@Entity@Table(name = "cst_customer")public class Customer {    /**     * @Id:声明主键配置     * @GeneratedValue:配置主键的生成策略     *       GenerationType.IDENTITY:自增 MySQL     *                底层数据库必须支持自增长     *       GenerationType.SEQUENCE:序列 oracle     *                底层数据库必须支持序列     *       GenerationType.TABLE:     *             jpa提供的一种机制,通过一张数据库表的形式帮助我们完成自增长     *       GenerationType.AUTO:     *             有程序自动的帮助我们选择主键生成策略     * @Column:配置属性和字段的映射关系     *       name:数据库中字段的名称     */    @Id    @GeneratedValue(strategy = GenerationType.IDENTITY)    @Column(name = "cust_id")    private  Long custId;//客户主键    @Column(name = "cust_name")    private  String custName;//客户名称    @Column(name = "cust_source")    private  String custSource;//客户来源    @Column(name = "cust_industry")    private  String custIndustry;//客户级别    @Column(name = "cust_level")    private  String custLevel;//客户所属行业    @Column(name = "cust_address")    private  String custAddress;//客户地址    @Column(name = "cust_phone")    private  String custPhone;//客户联系方式

    public Long getCustId() {        return custId;    }

    public void setCustId(Long custId) {        this.custId = custId;    }

    public String getCustName() {        return custName;    }

    public void setCustName(String custName) {        this.custName = custName;    }

    public String getCustSource() {        return custSource;    }

    public void setCustSource(String custSource) {        this.custSource = custSource;    }

    public String getCustIndustry() {        return custIndustry;    }

    public void setCustIndustry(String custIndustry) {        this.custIndustry = custIndustry;    }

    public String getCustLevel() {        return custLevel;    }

    public void setCustLevel(String custLevel) {        this.custLevel = custLevel;    }

    public String getCustAddress() {        return custAddress;    }

    public void setCustAddress(String custAddress) {        this.custAddress = custAddress;    }

    public String getCustPhone() {        return custPhone;    }

    public void setCustPhone(String custPhone) {        this.custPhone = custPhone;    }

    @Override    public String toString() {        return "Customer{" +                "custId=" + custId +                ", custName=‘" + custName + ‘\‘‘ +                ", custSource=‘" + custSource + ‘\‘‘ +                ", custIndustry=‘" + custIndustry + ‘\‘‘ +                ", custLevel=‘" + custLevel + ‘\‘‘ +                ", custAddress=‘" + custAddress + ‘\‘‘ +                ", custPhone=‘" + custPhone + ‘\‘‘ +                ‘}‘;    }}最后测试testFind类
/** * 根据id查询客户 */public  void testFind(){    //1根据工具类获取entityManager    EntityManager entityManager=JpaUtils.getEntityManager();    //3.获取事务对象,开启事务    EntityTransaction transaction=entityManager.getTransaction();//获取事务对象    transaction.begin();//开启事务    //3.增删改查--根据id查询客户    Customer customer=entityManager.find(Customer.class,1l);    System.out.print(customer);    //5.提交事务(回滚事务)    transaction.commit();    //6.释放资源    entityManager.close();}

原文地址:https://www.cnblogs.com/easyjie/p/11951935.html

时间: 2024-08-30 16:01:46

Spring Data JPA 基础第二篇的相关文章

【Spring Data 系列学习】Spring Data JPA 基础查询

[Spring Data 系列学习]Spring Data JPA 基础查询 前面的章节简单讲解了 了解 Spring Data JPA . Jpa 和 Hibernate,本章节开始通过案例上手 Spring boot Jpa . spring data Spring Data 库的核心接口是 Repository.首先需要定义实体类的接口,接口必须继承 repository 并且输入实体类型和 ID 类型,如果需要用到 CRUD 方法,可以使用 CrudRepository 来替代 Repo

Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL

在数据访问这章的第一篇文章<Spring中使用JdbcTemplate访问数据库> 中,我们已经介绍了如何使用Spring Boot中最基本的jdbc模块来实现关系型数据库的数据读写操作.那么结合Web开发一章的内容,我们就可以利用JDBC模块与Web模块的功能,综合着使用来完成一个适用于很多简单应用场景的后端应用了. 然而当我们有一定的开发经验之后,不难发现,在实际开发过程中,对数据库的操作大多可以归结为:"增删改查".就最为普遍的单表操作而言,除了表和字段不同外,语句几

Spring Data Jpa 详解 (配置篇)

转载地址:http://doc.okbase.net/liuyitian/archive/109276.html JPA全称Java Persistence API,即Java持久化API,它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据,结合其他ORM的使用,能达到简化开发流程的目的,使开发者能够专注于实现自己的业务逻辑上. Spring Jpa 能够简化创建 JPA 数据访问层和跨存储的持久层功能,用户的持久层Dao接口只需要继承他自己定义好的(仓库)接口,无需

Spring Boot入门第二天:一个基于Spring Boot的Web应用,使用了Spring Data JPA和Freemarker。

今天打算从数据库中取数据,并展示到视图中.不多说,先上图: 第一步:添加依赖.打开pom.xml文件,添加必要的依赖,完整代码如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q

spring data jpa的使用

在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法以及注意事项 使用spring data jpa 开发时,发现国内对spring boot jpa全面介绍的文章比较少案例也比较零碎,因此写文章总结一下.本人也正在翻译Spring Data JPA 参考指南,有兴趣的同学欢迎联系我,一起加入翻译中! spring data jpa介绍 首先了解JPA是什么? JPA(Ja

Spring Data JPA进阶——Specifications和Querydsl

Spring Data JPA进阶--Specifications和Querydsl 本篇介绍一下Spring Data JPA中能为数据访问程序的开发带来更多便利的特性,我们知道,Spring Data repository的配置很简单,一个典型的repository像下面这样: public interface CustomerRepository extends JpaRepository<Customer, Long> { Customer findByEmailAddress(Str

深入浅出学Spring Data JPA

第一章:Spring Data JPA入门   Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务. Spring Data 包含多个子项目: Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化 JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能 Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 P

SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法

首先谢谢大佬的简书文章:http://www.jianshu.com/p/45ad65690e33# 这篇文章中讲的是spring中使用spring data jpa,使用了xml配置文件.我现在使用的是spring boot ,没有了xml文件配置就方便多了.我同样尝试了两种方式,也都是简单的查询,需要更复杂的查询,还需要我研究研究.往下看,需要先配置springboot的开发环境,需要大致了解springboot,这里可以看下面两篇文章: springboot 项目新建 springboot

Spring Data JPA

转自: http://www.cnblogs.com/WangJinYang/p/4257383.html Spring 框架对 JPA 的支持 Spring 框架对 JPA 提供的支持主要体现在如下几个方面: 首先,它使得 JPA 配置变得更加灵活.JPA 规范要求,配置文件必须命名为 persistence.xml,并存在于类路径下的 META-INF 目录中.该文件通常包含了初始化 JPA 引擎所需的全部信息.Spring 提供的 LocalContainerEntityManagerFa