1....创建步骤:练习使用
1... 创建 maven工程
2...添加依赖 mysql c3p0 hibernate springDataJpa spring相关的包
3...创建 配置文件 员(数据源)工(工程类对象)是(事物)爹(dao 扫描器)
4... 创建实体类
5... 创建dao 接口 继承 JapRespository
2....五种查询方式
(1) crud
添加/修改 数据 save 方法
删除数据 delete 方法
查询 :findOne. getOne 方法
查询全部 findAll() 方法
findAll(Pageable pageaable) 返回Page对象 进行分页 排序
(2) 在springDataJpa框架使用Jpql 查询
a: 在dao 接口中定义一个方法 使用方法的参数设置jpql的参数 并且使用方法的返回值接受查询的结果
b: 在方法上添加一个注解Qquery
c 在注解中编写jpql
d 测试
(3)使用原生的Sql语句
1 dao中 定义一个方法
2 在方法中添加@Query注解
3 在注解中 添加 原生的sql 语句 添加一个属性 nativeQuery=true
4 测试
(4)方法命名规则查询
通过一定的规则 定义一个方法 框架本省就可以根据方法名生成一个SQL语句进行查询
规则:
1 使用findBy开头
2 查询某个字段 findBy后跟实体类的属性的名称
3 如果有多个条件 就在方法后加And+实体类的属性名
4 方法的参数 对应查询的定义
5 返回值根据返回的数据类型定义
如果需要分页查询 在方法中添加一个参数Pageable 即可
(5)使用Specification方式进行查询
最强大的查询方式 除了原生的SQL 语句以外 最复杂的查询方式
使用方式:
1 要在dao 继承JpaSeciFicationExection 接口
2 使用JpaSeciFicationExection 接口 中提供的方法进行查询
每个方法都需要使用Specification对象作为参数
具体实现:::
1...pom.xml 配置
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.wsc</groupId> 8 <artifactId>springdatalpa01</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 12 <properties> 13 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 14 <maven.compiler.source>1.8</maven.compiler.source> 15 <maven.compiler.target>1.8</maven.compiler.target> 16 <spring.version>4.2.4.RELEASE</spring.version> 17 <hibernate.version>5.0.7.Final</hibernate.version> 18 <slf4j.version>1.6.6</slf4j.version> 19 <log4j.version>1.2.12</log4j.version> 20 <c3p0.version>0.9.1.2</c3p0.version> 21 <mysql.version>5.1.6</mysql.version> 22 </properties> 23 <dependencies> 24 <dependency> 25 <groupId>junit</groupId> 26 <artifactId>junit</artifactId> 27 <version>4.12</version> 28 <scope>test</scope> 29 </dependency> 30 <!--spring start--> 31 <dependency> 32 <groupId>org.aspectj</groupId> 33 <artifactId>aspectjweaver</artifactId> 34 <version>1.6.8</version> 35 </dependency> 36 <dependency> 37 <groupId>org.springframework</groupId> 38 <artifactId>spring-aop</artifactId> 39 <version>${spring.version}</version> 40 </dependency> 41 <dependency> 42 <groupId>org.springframework</groupId> 43 <artifactId>spring-context</artifactId> 44 <version>${spring.version}</version> 45 </dependency> 46 <dependency> 47 <groupId>org.springframework</groupId> 48 <artifactId>spring-context-support</artifactId> 49 <version>${spring.version}</version> 50 </dependency> 51 <dependency> 52 <groupId>org.springframework</groupId> 53 <artifactId>spring-orm</artifactId> 54 <version>${spring.version}</version> 55 </dependency> 56 <dependency> 57 <groupId>org.springframework</groupId> 58 <artifactId>spring-beans</artifactId> 59 <version>${spring.version}</version> 60 </dependency> 61 <dependency> 62 <groupId>org.springframework</groupId> 63 <artifactId>spring-core</artifactId> 64 <version>${spring.version}</version> 65 </dependency> 66 <!--spring end--> 67 <!--hibernate start--> 68 <dependency> 69 <groupId>org.hibernate</groupId> 70 <artifactId>hibernate-core</artifactId> 71 <version>${hibernate.version}</version> 72 </dependency> 73 <dependency> 74 <groupId>org.hibernate</groupId> 75 <artifactId>hibernate-entitymanager</artifactId> 76 <version>${hibernate.version}</version> 77 </dependency> 78 <dependency> 79 <groupId>org.hibernate</groupId> 80 <artifactId>hibernate-validator</artifactId> 81 <version>5.2.1.Final</version> 82 </dependency> 83 <!--hibernate end--> 84 <dependency> 85 <groupId>c3p0</groupId> 86 <artifactId>c3p0</artifactId> 87 <version>${c3p0.version}</version> 88 </dependency> 89 <dependency> 90 <groupId>log4j</groupId> 91 <artifactId>log4j</artifactId> 92 <version>${log4j.version}</version> 93 </dependency> 94 <dependency> 95 <groupId>org.slf4j</groupId> 96 <artifactId>slf4j-api</artifactId> 97 <version>${slf4j.version}</version> 98 </dependency> 99 <dependency> 100 <groupId>org.slf4j</groupId> 101 <artifactId>slf4j-log4j12</artifactId> 102 <version>${slf4j.version}</version> 103 </dependency> 104 <dependency> 105 <groupId>mysql</groupId> 106 <artifactId>mysql-connector-java</artifactId> 107 <version>${mysql.version}</version> 108 </dependency> 109 <dependency> 110 <groupId>org.springframework.data</groupId> 111 <artifactId>spring-data-jpa</artifactId> 112 <version>1.9.0.RELEASE</version> 113 </dependency> 114 <dependency> 115 <groupId>org.springframework</groupId> 116 <artifactId>spring-test</artifactId> 117 <version>4.2.4.RELEASE</version> 118 </dependency> 119 <dependency> 120 <groupId>javax.el</groupId> 121 <artifactId>javax.el-api</artifactId> 122 <version>2.2.4</version> 123 </dependency> 124 <dependency> 125 <groupId>org.glassfish.web</groupId> 126 <artifactId>javax.el</artifactId> 127 <version>2.2.4</version> 128 </dependency> 129 </dependencies> 130 </project>