>>分享JPA、Hibernate、Mybatis对象持久化技术,对《精通JPA与Hibernate:Java对象持久化详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 23705 个阅读者 刷新本主题
 * 贴子主题:  十分钟入门 JPA 回复文章 点赞(0)  收藏  
作者:日月光华    发表时间:2024-04-20 08:02:20     消息  查看  搜索  好友  邮件  复制  引用


一.JPA的概念
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
为了节省时间,更加具体的解释我们就略过吧。

二.在IDEA中使用JPA

2.1.添加JAP依赖

添加相关的maven依赖
<properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <maven.compiler.source>1.7</maven.compiler.source>

        <maven.compiler.target>1.7</maven.compiler.target>

        <hibernate.version>5.2.17.Final</hibernate.version>

        <goda.time.version>2.9.9</goda.time.version>

    </properties>

    <dependencies>



        <dependency>

            <groupId>junit</groupId>

            <artifactId>junit</artifactId>

            <version>4.11</version>

            <scope>test</scope>

        </dependency>



        <!-- jdbc驱动包  -->

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

            <version>5.1.37</version>

        </dependency>



        <dependency>

            <groupId>org.hibernate</groupId>

            <artifactId>hibernate-core</artifactId>

            <version>4.3.10.Final</version>

        </dependency>



        <dependency>

            <groupId>org.hibernate</groupId>

            <artifactId>hibernate-entitymanager</artifactId>

            <version>4.3.10.Final</version>

        </dependency>



        <dependency>

            <groupId>org.hibernate.javax.persistence</groupId>

            <artifactId>hibernate-jpa-2.1-api</artifactId>

            <version>1.0.0.Final</version>

        </dependency>



        <dependency>

            <groupId>org.hibernate.common</groupId>

            <artifactId>hibernate-commons-annotations</artifactId>

            <version>4.0.5.Final</version>

        </dependency>



        <!--持久化依赖-->

        <dependency>

            <groupId>joda-time</groupId>

            <artifactId>joda-time</artifactId>

            <version>${goda.time.version}</version>

        </dependency>



        <dependency>

            <groupId>org.jadira.usertype</groupId>

            <artifactId>usertype.core</artifactId>

            <version>6.0.1.GA</version>

        </dependency>



        <dependency>

            <groupId>antlr</groupId>

            <artifactId>antlr</artifactId>

            <version>2.7.7</version>

        </dependency>



        <dependency>

            <groupId>dom4j</groupId>

            <artifactId>dom4j</artifactId>

            <version>1.6.1</version>

        </dependency>



        <dependency>

            <groupId>org.jboss</groupId>

            <artifactId>jandex</artifactId>

            <version>1.1.0.Final</version>

        </dependency>



        <dependency>

            <groupId>org.javassist</groupId>

            <artifactId>javassist</artifactId>

            <version>3.18.1-GA</version>

        </dependency>



        <dependency>

            <groupId>org.jboss.logging</groupId>

            <artifactId>jboss-logging</artifactId>

            <version>3.1.4.GA</version>

        </dependency>



        <dependency>

            <groupId>org.jboss.logging</groupId>

            <artifactId>jboss-logging-annotations</artifactId>

            <version>1.2.0.Beta1</version>

            <scope>provided</scope>

        </dependency>



        <dependency>

            <groupId>org.jboss.spec.javax.transaction</groupId>

            <artifactId>jboss-transaction-api_1.1_spec</artifactId>

            <version>1.0.0.Final</version>

        </dependency>



        <dependency>

            <groupId>javax.ejb</groupId>

            <artifactId>ejb-api</artifactId>

            <version>3.0</version>

        </dependency>



    </dependencies>

2.2.配置JPA运行环境

        在IDEA中,resources文件夹下,也就是资源文件夹下,创建META-INF文件夹,在该文件夹下创建persistence.xml文件,添加以下配置。


<?xml version="1.0" encoding="UTF-8"?>

<persistence version="2.1"

             xmlns="http://xmlns.jcp.org/xml/ns/persistence"

             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence

             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">



    <persistence-unit name="MyJPA" transaction-type="RESOURCE_LOCAL">

        <properties>

            <property name="javax.persistence.jdbc.driver"

                      value="com.mysql.jdbc.Driver" />

            <property name="javax.persistence.jdbc.url"

                      value="jdbc:mysql://localhost:3306/jpa" />

            <property name="javax.persistence.jdbc.user" value="root" />

            <property name="javax.persistence.jdbc.password" value="root" />

            <property name="hibernate.dialect"

                      value="org.hibernate.dialect.MySQL5Dialect" />

            <property name="hibernate.show_sql" value="true" />

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

        </properties>



    </persistence-unit>



</persistence>

如下:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
2.3.创建表


CREATE TABLE `user` (

    `id` int(11) NOT NULL AUTO_INCREMENT,

    `name` varchar(255) DEFAULT NULL,

    `password` varchar(255) DEFAULT NULL,

   PRIMARY KEY (`id`)

   ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2.4.在IDEA中配置数据源
在IDEA的右边有Database,按以下步骤操作即可。
这里也可以不配置,配置之后,可以在IDEA中直接看到数据库中的表,并且之后再IDEA中写的代码也不用有警告。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
添加你的数据库名字,第一次配置下边会提示你下载插件,很具提示即可。
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
2.5.测试

创建User类


package com.hly.jpa.model.oneToOne;



import javax.persistence.*;

/**

* @author :hly

* @github :github.com/SiriusHly

* @blog :blog.csdn.net/Sirius_hly

* @date :2018/9/27

*/


@Entity

//指定表名,指定唯一约束

@Table(name = "user",uniqueConstraints = {@UniqueConstraint(columnNames = {"id","name"})})

public class User {

    @Id//指定主键

    @GeneratedValue

    private int id;

    @Column

    private String name;

    @Column

    private String password;



    //一对一映射

    @OneToOne(optional = true, cascade = CascadeType.ALL)

    @JoinColumn(name = "articleId", unique = true)

    public Article article;



    //省略了getter和setter

}

/**

     * 获取应用管理的EntityManager

     */


    @Test

    public void testApplicationEntityManager() {

        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("MyJPA");

        EntityManager em = entityManagerFactory.createEntityManager();

        em.getTransaction().begin();

        User user = new User();

        user.setName("hly");

        //以上两行为新建状态

        //托管状态

        em.persist(user);

        //事务提交或调用flush()方法后会同步到数据库

        em.getTransaction().commit();

        //根据主键获取对象

        //System.err.println(em.find(User.class,1));

        //System.err.println(em.getReference(User.class,1));

        em.close();

        entityManagerFactory.close();

    }

数据库中插入数据则成功。

2.6.EntityManager接口
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
2.7.实体类中注解的含义

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
本文转自:https://blog.csdn.net/Sirius_hly/article/details/82903041



程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->继承
  JavaWeb开发-->在Web应用中访问Web服务
  JSP与Hibernate开发-->数据库事务的并发问题的解决方案
  Java网络编程-->XML数据处理
  精通Spring-->Vue简介
  Vue3开发-->Vue CLI脚手架工具
  什么是XA事务
  分布式事务浅析及简单实现
  推荐:Spring,JPA与Hibernate的最新整合范例讲解(孙卫琴主讲...
  用注解和XML描述对象-关系映射的区别,和优缺点
  用CriteriaBuilder进行动态查询
  盘点Hibernate的值类型映射技巧
  好书推荐:《精通Hibernate:Java对象持久化技术详解》
  Hibernate ORM 5.3.9.Final 发布,常规更新版本
  JP注解(标注)和Hibernate注解(标注) 用法详解
  Hibernate的save()和persist()方法的区别
  Hibernate Session和JPA的EntityManager的对应关系
  Hibernate5源码解析:SessionFactroy的创建过程
  Spring Hibernate5入门
  解决运行Hibernate时的NoClassDefFoundError: javax/xml/bin...
  在看孙老师的hibernate书。。。
  更多...
 IPIP: 已设置保密
楼主      
该用户目前不在线 发货33 
  

威望: 0
级别: 侠客
魅力: 195
经验: 195
现金: 1152
发文章数: 19
注册时间: 0001-01-01
 消息  查看  搜索  好友  邮件  复制  引用


极速飞艇开奖直播 就可以测量出来光线拐没拐弯、拐了多大的弯。机会在1919年出现了,但日全食带在南大西洋上,很遥远,也很艰苦。英国天文学家爱丁顿带着一支热情和好奇心极强的观测队出发了。观测结果与爱因斯坦事先计算的结果十分吻合,从此相对论得到世人的承认。在中国,
英国乐透8预测开奖 前两次日全食都只能在边远地区看到。一次是在1980年,只有中缅边境云南瑞丽地区可见。另一次是在1997年春节之后,在中俄边境、中国的最北端漠河可见。那次的观测规模之大,出乎想象,世界各国的天文学家和天文爱好者,把个平时人迹罕至的北疆小镇挤得比过年还
168开奖网结果 热闹,由于人数大大超出小镇的接待能力,人们只能宿营在火车和汽车上。当时那里还是冬天,白天气温零下25℃左右,夜里能到零下40℃,滴水成冰,人们连洗脸漱口的水都找不到。尽管如此,观测者们没有一个后悔的,没有一个不兴奋异常的,都把亲眼看到日全食,
发文章时间 2024-04-20 08:02:20
 IPIP: 已设置保密 1 楼     
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。