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 新特性总结

Spring data jpa总结

spring data jpa总结

带有分页和排序的 Spring Boot JPA 规范 API

spring data jpa总结

免费下载全套最新010-2Spring jpa分页整合视频教程+教学资料+学习课件+源代码+软件开发工具