1、第一步还是创建简单的Maven的项目工程。
2、添加依赖pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zichen</groupId>
<artifactId>sssdj</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<!--设置编译的版本使用1.8版本-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.12</junit.version>
<springdatajpa.version>1.11.6.RELEASE</springdatajpa.version>
<hibernate.version>5.0.7.Final</hibernate.version>
<mysql.version>5.1.32</mysql.version>
<druid.version>1.0.9</druid.version>
<spring.version>4.3.10.RELEASE</spring.version>
<commons-lang3.version>3.3.2</commons-lang3.version>
</properties>
<dependencies>
<!--单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring data jpa 数据库持久层 -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>${springdatajpa.version}</version>
</dependency>
<!-- hibernate 框架 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<!-- MySql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>com.github.wenhao</groupId>
<artifactId>jpa-spec</artifactId>
<version>3.1.1</version>
<!-- 把所有依赖都过滤 -->
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
3、在resources的下面创建application-dev.properties
配置文件
在properties中的url是 /// 三根斜杠是默认是localhost/3306的意思.
#============================#
#==== Database settings ====#
#============================#
# MySQL 8.x: com.mysql.cj.jdbc.Driver
# mysql数据库的驱动
spring.datasource.DriverClassName=com.mysql.jdbc.Driver
# 数据库连接的路径
spring.datasource.url=jdbc:mysql:///test?useSSL=false&serverTimezone=Asia/Shanghai
# mysql用户名
spring.datasource.username=root
# mysql密码
spring.datasource.password=123456
4、在resources下面创建spring-config.xml
spring-data-jpa的配置文件
在mysql中一定要先建数据库test,表可以自动生成.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:application-dev.properties"/>
<!--配置service扫描-->
<context:component-scan base-package="com.zichen.service"/>
<!--数据库连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<property name="driverClassName" value="${spring.datasource.DriverClassName}"/>
<property name="url" value="${spring.datasource.url}"/>
<property name="username" value="${spring.datasource.username}"/>
<property name="password" value="${spring.datasource.password}"/>
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000"/>
</bean>
<!--jpa整合-->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--待扫描的实体类包-->
<property name="packagesToScan" value="com.zichen.domain" />
<!--jpaVendorAdapter-->
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<!-- 自动建表 -->
<property name="generateDdl" value="true" />
<!--mysql-->
<property name="database" value="MYSQL" />
<!--原来方言-->
<property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect" />
<!--是否显示sql语句-->
<property name="showSql" value="true" />
</bean>
</property>
</bean>
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<!-- 开启事务注解 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!--Spring Data Jpa配置-->
<!--指定Spring Data JPA要进行扫描的包,该包中的类框架会自动为其创建代理-->
<jpa:repositories base-package="com.zichen.repository" transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory"/>
</beans>
5、在com.zichen.domain
创建实体Employee
package com.zichen.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @program: Employee
* @description: 员工信息类
* @author: hewo
* @create: 2020-12-11 11:12
**/
@Entity // 这个是springdatajpa中的注解
@Table(name="employee") //数据库中这个实体类的表的名称
public class Employee {
@Id // 主键注解
@GeneratedValue // 自增
private Long id; // id
private String username; // 用户名
private String password; // 密码
private String email; // 邮箱
private Integer age; // 年龄
// setter 和 getter toString方法省略........
}
6、在com.zichen.repository
创建接口EmployeeRepository
package com.zichen.repository;
import com.zichen.domain.Employee;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
/**
* 必需继续JpaRepository<1v,2v>
* 1v:代表你要操作的是哪一个domain对象
* 2v:这个domain对象的主键的类型
*/
public interface EmployeeRepository extends JpaRepository<Employee, Long>, JpaSpecificationExecutor<Employee> {
}
7、创建字test文件中创建com.zichen.repository
测试类EmployeeRepositoryTest
执行一次数据库中的表就生成了,在到数据库中添加一条或者多条再次执行测试方法.
package com.zichen.repository;
import com.github.wenhao.jpa.Specifications;
import com.zichen.domain.Employee;
import com.zichen.query.EmployeeQuery;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.persistence.criteria.*;
import java.util.List;
/**
* 测试test
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-config.xml") // xml的配置文件
public class EmployeeRepositoryTest {
// 注入EmployeeRepository
@Autowired
private EmployeeRepository employeeRepository;
// 获取所有数据
@Test
public void testFindAll() {
// 查询全部
List<Employee> emps = employeeRepository.findAll();
for (Employee emp :emps){
System.out.println(emp);
}
}
}
8、还有web.xml哪里没有写.根整合ssm项目一样即可.
9、😀😀😀