EclipseLink+H2 快速搭建JPA开发环境
JPA是Java Persistence API, 是Java提供的持久层开发的统一API。但是JPA只是定义的规范接口,并没有提供具体实现, JPA的具体实现有Hibernate 、EclipseLink等。
H2是Java开发的开源内嵌数据库, H2数据库不需要安装,直接导入jar 档既可以快速实现数据库的开发,数据可以存储在文件系统或是内存中。H2最大的特点就是轻量、免安装。可以用来快速搭建数据库开发环境,常用来学习和演示。
对于使用Eclipse 集成开发环境的开发者来说, 搭建EclipseLink+H2的组合是学习和验证JPA相关API的快速路径。
环境搭建
- 在Eclipse中创建Maven类型的项目
- 导入EclipseLink相关的依赖文件
因为EclipseLink的依赖库文件直接从Maven中央库无法获取, 需要配置如下库地址:
<repositories><repository><id>jakarta.oss.sonatype.org</id><name>Jakarta OSS Sonatype Staging</name><url>https://jakarta.oss.sonatype.org/content/repositories/staging</url></repository></repositories>
接下来配置EclipseLink的依赖库:
<dependency><groupId>org.eclipse.persistence</groupId><artifactId>eclipselink</artifactId><version>2.5.2</version><exclusions><exclusion><groupId>org.eclipse.persistence</groupId><artifactId>commonj.sdo</artifactId></exclusion></exclusions></dependency>
- 添加H2依赖的配置
<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><version>1.4.200</version></dependency>
保存pom.xml 文件后会自动下载相关的jar 库文件, 完成后,项目的机构如下:
- 创建JPA 持久化配置文件
在 src/main/resources 目录下创建META-INF子目录, 并在该子目录创建persistence.xml 文件。 在文件中进行数据源以及实体类的配置。
JPA示例代码
- 创建实体类 User, 该实体类只有两个属性id 和 name
- 配置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="my_h2"><provider>org.eclipse.persistence.jpa.PersistenceProvider</provider><class>cn.osxm.jpa.entity.User</class><properties><property name="javax.persistence.jdbc.url"value="jdbc:h2:mem:myh2" /><property name="javax.persistence.jdbc.driver"value="org.h2.Driver" /><property name="javax.persistence.jdbc.user" value="root" /><property name="javax.persistence.jdbc.password"value="123456" /></properties></persistence-unit>
</persistence>
- 这里的数据源使用 H2 数据库
- 使用内存保存数据的方式,地址是
jdbc:h2:mem:myh2
, mem 代表memory - 驱动是
org.h2.Driver
- 测试代码
/*** @ClassName: JpaDemo* @Description: TODO* @author oscarchen*/
public class JpaDemo {private Connection conn;private Statement stmt;public void initH2Database() throws Exception {String JDBC_URL = "jdbc:h2:mem:myh2";String USER = "root";String PASSWORD = "123456";String DRIVER_CLASS = "org.h2.Driver";Class.forName(DRIVER_CLASS);conn = DriverManager.getConnection(JDBC_URL, USER, PASSWORD);stmt = conn.createStatement();stmt.execute("DROP TABLE IF EXISTS USER");stmt.execute("CREATE TABLE USER(id VARCHAR(10) PRIMARY KEY,name VARCHAR(50))");stmt.executeUpdate("INSERT INTO USER VALUES('001','刘备')");stmt.executeUpdate("INSERT INTO USER VALUES('002','关羽')");stmt.executeUpdate("INSERT INTO USER VALUES('003','张飞')"); }public void close() throws Exception {stmt.close();conn.close();}public void jpaQuery() {EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("my_h2");EntityManager em = emFactory.createEntityManager();List<User> list = em.createQuery("select u from User u",User.class).getResultList();for(User user:list) {System.out.println(user.toString());}//CriteriaBuilder cb = em.getCriteriaBuilder();//CriteriaQuery(User) cq = cb.cr}public static void main(String[] args) throws Exception {JpaDemo jpaDemo= new JpaDemo();jpaDemo.initH2Database();jpaDemo.jpaQuery();}}
- initH2Database() 用于初始H2数据库的表以及数据
- jpaQuery() 进行JPA查询。
补充
- 关于Eclipse 下搭建EclipseLink 进行JPA开发环境的更多内容可以参考:
Eclipse下安装EclipseLink进行JPA开发
EclipseLink+H2 快速搭建JPA开发环境相关推荐
- SpringMVC学习(二)——快速搭建SpringMVC开发环境(注解方式)
文章目录 说明 1.工程搭建 2.注解配置 2.1.context:annotation-config说明 2.2.context:component-scan配置说明 2.3.mvc:annotat ...
- mybatis注解开发_快速搭建MyBatis开发环境(配置版+注解版)
下面我们搭建一下MyBaits的开发环境,也就是一个用MyBaits框架访问数据库的例子. 1.项目结构如下 这里搭建的是一个maven项目. 2.引入依赖pom.xml 4.0.0com.suibi ...
- 修正《用Docker快速搭建Go开发环境》文章中的一处错误
上周写的文章<五分钟用Docker快速搭建Go开发环境>,文章发出去后有不少阅读量,而且从后台看的数据 60%的人都读完了.今天我自己用下面命令往 容器里的 Go 项目里下载包时发现了一处 ...
- linux开发 stc_在Linux上快速搭建8051开发环境
在Linux上快速搭建8051开发环境(2018-7-2) 0. 写在开始之前 实验操作系统环境: Ubuntu 16.04 编译器: sdcc SDCC - Small Device C Compi ...
- 利用vagrant快速搭建rails开发环境
为什么80%的码农都做不了架构师?>>> Deprecated 前言 当我们学习一门新的语言或技术的时候,最麻烦或比较浪费时间的事情就是搭建开发环境.而搭建开发环境与我们将要学 ...
- SpringMVC学习(一)——快速搭建SpringMVC开发环境(非注解方式)
目录 1.开发环境准备 1.1.首先电脑需要安装JDK环境(略) 1.2.准备一个以供开发的tomcat 1.3.准备Maven工具 1.4.准备IDE编译器 1.5.准备一个本地的数据库, 2.搭建 ...
- 五分钟用Docker快速搭建Go开发环境
挺早以前在我写过一篇用 Docker搭建LNMP开发环境的文章:用Docker搭建Laravel开发环境,里面详细介绍了将 nginx. mysql和 php三个容器用 docker-compose编 ...
- Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤
之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境,那时 ...
- 使用PHP环境一键安装包快速搭建PHP开发环境
在Windows系统下如何搭建PHP开发环境? 为了快速进入编程状态,顺利地完成第一个PHP程序,我们选择使用PHP集成环境包. 什么是PHP集成环境包?类似的软件又有哪些呢? 要回答这个问题,我们需 ...
最新文章
- 阿里研究员:警惕软件复杂度困局
- spring-boot-2.0.3之quartz集成,不是你想的那样哦!
- SAP CRM代码对数据库表COMM_PRODUCT的读写访问情况明细统计
- 蓝桥杯第八届省赛JAVA真题----分巧克力
- java中的内存一般分成几部分?
- Ros学习笔记(二)创建功能包
- 卡拉OK歌词同步播放
- C#中获得窗体的句柄
- 软件集成测试分析,软件集成测试报告模板
- 华为HCIE云计算培训笔记第二天
- 网络操作系统与分布式操作系统
- 通信原理及系统系列3—— 基于卷积编码的2ASK通信系统设计(非相干解调)
- linux安装steam提示没有32位,12.10- 试图安装 Steam 错误: 你缺少以下 32位库,并且 Steam 可能无法运行...
- Kubernetes 节点弹性伸缩开源组件 Amazon Karpenter 实践:部署GPU推理应用
- 几何公差学习笔记(二)-- 公差带的定义、标注和解释
- java计算矩形_用Java实现计算矩形的面积与周长
- 转换uptime_王者荣耀角色转换什么时候正式上线_王者荣耀角色转换上线时间-超分手游网...
- Ansible Inventory内置参数
- android自适应屏幕翻转,Android中正确自适应屏幕翻转
- java:布局方法(网格布局)
热门文章
- 2016/06/11
- Java:基于LinkedList实现栈和队列
- 创建完美SDK的10个技巧
- http响应状态码大全
- Welcome to Swift (苹果官方Swift文档初译与注解八)---53~57页(第二章)
- javascript设计模式-抽象工厂模式
- [php基础]PHP环境变量$_SERVER和系统常量详细说明
- 文本编码与解码问题解决方案
- 基础 - 字符读取函数scanf、getchar、gets、cin(清空缓存区解决单字符回车问题)
- 解决hadoop no dataNode to stop问题