Spring学习总结 05 JPA
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring学习总结 05 JPA相关的知识,希望对你有一定的参考价值。
一 JPA介绍
1 JPA
JPA Java Persistence API,JPA吸收了很多ORM框架的持久化思想,是在ORM框架的基础上,抽象出来的一层规范。使用JPA你可以随时更换底层支持JPA的ORM框架,而不需要与ORM绑死,同时Spring对JPA的支持,使得JPA写出的代码很精简。
2 环境准备
1 数据库和表
建立数据库和表所用的脚本如下
create database myDb; use myDb; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10) DEFAULT NULL, `address` varchar(200) DEFAULT NULL, `phone` varchar(15) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of user -- ---------------------------- INSERT INTO `student` VALUES (‘1‘, ‘小张‘, ‘北京路120号‘, ‘13678909871‘); INSERT INTO `student` VALUES (‘2‘, ‘小王‘, ‘天津路230号‘, ‘13578909876‘); INSERT INTO `student` VALUES (‘3‘, ‘小李‘, ‘上海路280号‘, ‘13987654569‘); INSERT INTO `student` VALUES (‘4‘, ‘小周‘, ‘广州路380号‘, ‘13689098765‘); INSERT INTO `student` VALUES (‘5‘, ‘小红‘, ‘成都路370号‘, ‘13689008705‘);
2 工程主要使用的jar包如下
- Spring 基础jar包 (版本:3.2.2)
- Spring Data JPA jar包( 版本1.4.3.RELEASE)
- Hibernate 相关jar包 ( 版本3.5.5RELEASE)
- mysql数据库连接包 (版本:5.1.6)
- 日志相关jar包
可以使用maven新建一个JAVA工程, pom.xml 依赖的内容如下:
<properties> <spring.version>3.2.2.RELEASE</spring.version> <spring.data.jpa.version>1.4.3.RELEASE</spring.data.jpa.version> <junit.version>4.11</junit.version> <fastjson.version>1.2.7</fastjson.version> <commonslang3.verison>3.1</commonslang3.verison> <common.io.version>2.4</common.io.version> <common.dbcp.version>1.4</common.dbcp.version> <common.file.version>1.3</common.file.version> <servlet.api.version>3.0.1</servlet.api.version> <servlet.jsp.version>2.2</servlet.jsp.version> <hibernate.jpa.version>1.0.1.Final</hibernate.jpa.version> <hibernate.core.version>3.5.5-Final</hibernate.core.version> <hibernate.validator.version>4.3.1.Final</hibernate.validator.version> <mysql.version>5.1.6</mysql.version> </properties> <dependencies> <!-- database begin --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>${common.dbcp.version}</version> </dependency> <!-- database end --> <!-- common begin --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commonslang3.verison}</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${common.io.version}</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>${common.file.version}</version> </dependency> <!-- common end --> <!-- SPRING BEGIN --> <!-- 引用此类会自动加载spring的core(其它组件要都要使用到这个包里的类,是其它组件的基本核心,外部依赖Commons Logging)、beans(包含访问配置文件、创建和管理bean 以及进行DI AOP 操作相关的所有类)、aop(提供AOP(面向切面编程)的实现 )、context包(为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类) --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- 提供对事务的支持 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <!-- 包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <!-- 对JUNIT等测试框架的简单封装 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <!-- 这个jar 文件包含Spring MVC 框架相关的所有类。包括框架的Servlets,Web MVC框架,控制器和视图支持。当然,如果你的应用使用了独立的MVC 框架,则无需这个JAR 文件里的任何类。 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- 这个jar是spring扩展 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <!-- spring 对jpa的支持 --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-jpa</artifactId> <version>${spring.data.jpa.version}</version> </dependency> <!-- SPRING END --> <!-- hibernate start --> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <version>${hibernate.jpa.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.core.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${hibernate.core.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>${hibernate.validator.version}</version> </dependency> <!-- hibernate end --> <!-- fastJson start --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <!-- fastjson end --> <!-- junit start --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- junit end --> <!--servlet start --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${servlet.api.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>${servlet.jsp.version}</version> <scope>provided</scope> </dependency> <!--servlet end --> </dependencies>
资料参考:
http://blog.csdn.net/idlear/article/details/50994768
以上是关于Spring学习总结 05 JPA的主要内容,如果未能解决你的问题,请参考以下文章
Spring 学习总结(35)—— Spring 6.0 新特性总结