`

JPA 与 Hibernate 的一个简单实现

阅读更多

1. 创建项目 jpa

 

2. 在src下创建META-INF 并创建 persistence.xml 并写入以下内容

 

    <?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">

    <!-- 配置JPA持久化单元,RESOURCE_LOCAL表示本地事务,可以设置全局事务 -->
    <persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL">

        <!-- 配置JPA的实现提供者 -->
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
       
        <!-- 配置Hibernate/JPA的参数,如果此处不配置则必须在classpath下定义hibernate.properties文件 -->
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost/jpatest?useUnicode=true&amp;characterEncoding=UTF-8" />
            <property name="hibernate.connection.username" value="root" />
            <property name="hibernate.connection.password" value="123456" />
           
            <property name="hibernate.hbm2ddl.auto" value="create" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.hbm2ddl.auto" value="none" />
        </properties>

    </persistence-unit>
   
</persistence>

 

3. 创建数据库 jpatest

 

4. 创建User类

 

package cn.itcast.jpa.domain;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class User implements Serializable {
   
    static final long serialVersionUID = 1L;
   
    @Id
    @GeneratedValue
    private int id;
   
    @Column(nullable = false,length = 20,unique = false)
    private String name;

   
    public User(){};
   
   
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }



    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
   
    @Override
    public String toString() {
        return "id = " + this.id + " name = " + this.name ;
    }
   
}

 

 

5. 写一个带main方法的类进行保存数据

 

  package cn.itcast.jpa;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

import cn.itcast.jpa.domain.Department;
import cn.itcast.jpa.domain.Employee;
import cn.itcast.jpa.domain.Sales;
import cn.itcast.jpa.domain.Skiller;
import cn.itcast.jpa.domain.User;


public class BaseTest {

    public static void main(String[] args) {
        addUser();
    }
   
    static void addUser() {
       
        EntityManager em = null;
       
        try {
           
            em = Persistence.createEntityManagerFactory("jpa").createEntityManager();
           
            User user = new User();
            //user.setId("fdsafsd");
            user.setName("hwz");
           
            EntityTransaction tran = em.getTransaction();
            tran.begin();
           
            em.persist(user);
           
            tran.commit();
           
        }finally {
            if(em != null) {
                em.close();
            }
        }
       
    }

}

 

 

要引入的包如下:

 

目录结构如下:

 

 

 

 

 

 

要注意的地方:

 

   1. persistence.xml 中

 

       <property name="hibernate.show_sql" value="true" /> 是指运行时是否显示sql语句

 

       <property name="hibernate.hbm2ddl.auto" value="create" />

 

       上面的这句的意思是表结构生成方式,一共有四种方式:note,validate,create,create-drop,update

 

       validate               加载hibernate时,验证创建数据库表结构
       create                  每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
       create-drop        加载 hibernate时创建,退出是删除表结构
       update                 加载hibernate自动更新数据库结构

 

      要谨慎使用这个参数设置

 

 

  • 大小: 56.3 KB
  • 大小: 21.5 KB
分享到:
评论

相关推荐

    jpa+HIBERNATE的一个简单例子

    以下是一个简单的JPA + Hibernate的例子,展示了如何创建一个实体并进行持久化操作: 1. **定义实体类** ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) ...

    jpa + hibernate 例子

    而**Hibernate**则是一个实现了JPA规范的开源ORM框架,它简化了数据库操作,使得开发者可以使用Java对象来操作数据库,而无需编写大量的SQL语句。 在**JPA + Hibernate**的例子中,通常会涉及以下几个核心概念: 1...

    搭建一个JPA+hibernate实例

    JPA是一种标准的API,而Hibernate是其最流行的实现之一。本教程将指导你如何搭建一个基于JPA和Hibernate的实例,以便在Java项目中进行数据库操作。 首先,理解JPA的核心概念至关重要。JPA提供了一套规范,允许...

    springboot+jpa(hibernate配置redis为二级缓存) springboot2.1.4

    Hibernate是JPA的一个实现,提供了更丰富的功能和更强大的性能优化。 Redis则是一个开源的高性能键值存储系统,常用于缓存和消息中间件。它的高速读写能力使其成为缓存的理想选择,尤其是在处理大量数据时。 二级...

    SpringMVC+Spring+SpringDataJPA+Hibernate整合登录的效果

    这是整合SpringMVC+Spring+SpringDataJPA+Hibernate简单的实现登录的功能,用的是mysql数据库,这是一个web Project 如果你用的是JavaEE6那么你要注意bean-validator.jar和weld-osgi-bundle.jar与slf4j的jar包冲突。...

    jpa_hibernate项目 所有jar包

    1. 创建一个简单的JPA_Hibernate项目,从零开始设置配置,创建实体,编写DAO层操作。 2. 实现用户注册和登录功能,涉及数据插入和查询。 3. 设计和实现复杂关联关系,例如用户和订单的一对多关系。 4. 使用HQL或...

    Springmvc+JPA(Hibernate4)+redis+activemq

    JPA是Java EE的一部分,而Hibernate是其最流行的实现之一。Hibernate4提供了对JPA规范的实现,同时增加了许多高级特性,如缓存管理、复杂查询、事务处理等。使用JPA和Hibernate,开发者可以通过简单的对象操作来处理...

    基于jpa+hibernate+spring+spring mvc注解方式项目

    同时,JPA(Java Persistence API)作为Java官方的ORM(对象关系映射)规范,简化了数据库操作,而Hibernate是JPA的一个流行实现。本项目案例结合了这些技术,为新手提供了一个良好的学习平台。 **1. Spring框架** ...

    Spring2.5 + JPA(Hibernate)实现

    3. **Hibernate ORM**: Hibernate是JPA的一个实现,提供了更丰富的功能,如二级缓存、查询语言HQL(Hibernate Query Language)和 Criteria API。在Spring中,我们可以使用Hibernate的JPA供应商来配置和使用...

    springboot利用jpa连接hibernate

    Spring Data JPA是Spring Framework的一个模块,它为JPA提供了高级的抽象和方便的接口,使得数据库操作变得更加简单。 要实现Spring Boot与Hibernate的结合,首先需要在项目中引入相应的依赖。在`pom.xml`或`build....

    hibernate+jpa注解实现最简单的增删改查

    **hibernate+jpa注解实现最简单的增删改查** 在Java开发中,Hibernate和JPA(Java Persistence API)是两种广泛使用的对象关系映射(ORM)框架,它们简化了与数据库交互的过程,使开发者可以使用面向对象的方式来...

    maven+springmvc+springjpa+hibernate

    最后,**Hibernate**是JPA的一个流行实现,它提供了一套强大的ORM解决方案。Hibernate不仅实现了JPA规范,还扩展了一些额外的功能,比如HQL(Hibernate Query Language)——一种面向对象的查询语言,以及CGLIB和ASM...

    JSF+Spring+JPA_Hibernate实现_的环境搭建

    最后,**Hibernate** 是一个流行的JPA实现,它提供了丰富的功能,包括缓存、查询语言(HQL)和二级缓存等。Hibernate使得开发者可以更专注于业务逻辑,而不是底层的SQL操作。 在环境搭建过程中,你需要: 1. **安装...

    jpa/hibernate继承注解

    单一表继承是最简单的继承策略,所有的子类信息都存储在一个数据库表中。使用`@Inheritance(strategy = InheritanceType.SINGLE_TABLE)`注解在父类上声明这个策略。子类通过一个特定的列(通常称为`...

    精通Hibernate:Java对象持久化技术详解.pdf

    《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...

    spring-data-jpa hibernate

    这个压缩包中的项目可能是Spring Data JPA与Hibernate结合的示例应用,包含了一个简单的数据访问层实现。开发者可以通过阅读源代码,了解如何在实际项目中应用这两个框架。 总的来说,Spring Data JPA和Hibernate...

    SpringMVC+Apache Shiro+JPA(hibernate)整合

    本文将深入探讨如何将SpringMVC、Apache Shiro以及JPA(以Hibernate为实现)进行整合,以便在实际项目中实现高效且安全的用户认证与授权功能。 首先,我们来看`SpringMVC`,它是Spring框架的一部分,专门用于处理...

    Spring+SpringMVC+JPA+Hibernate搭建

    要使用Spring、SpringMVC、JPA和Hibernate搭建一个企业级的应用框架,通常会经历以下步骤: 1. 使用支持Java EE开发的集成开发环境(IDE),例如MyEclipse,创建一个Web工程。在本例中,使用的版本是MyEclipse 8.6...

    springmvc+maven+hibernate(JPA)实现的一个简易博客系统

    基于springmvc+maven+hibernate做的一个简易博客系统,方便对于springmvc的掌握和入门,按照过程一个个自己实践,相信会有一个不错的入门效果(仅作为入门,掌握springmvc和hibernate(JPA)所用,比如对于JPA...

Global site tag (gtag.js) - Google Analytics