Spring Data开发手册|手摸手教你简化持久层开发工作

Posted 浅羽技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Data开发手册|手摸手教你简化持久层开发工作相关的知识,希望对你有一定的参考价值。

Spring

​​

Spring Data​,是为数据访问提供熟悉且一致的​基于Spring的编程模型​,同时仍然保留底层数据存储的特殊特性。

它是对于数据访问技术,关系数据库和非关系数据库,map-reduce框架和基于云的数据服务变得容易。Spring Data是一个总括项目,其中​包含很多特定于数据库相关的子项目​。


Spring

首先,先带大家看一下本篇文章的大致介绍。

没目录怎么知道这篇到底有多少干货呢?


  • Spring Data是什么

  • Spring Data能干什么

  • Spring Data的第一个HelloWorld程序

  • 通过名字来确定方法

  • 通过注解的形式来实现查询

  • 写本地的SQL查询

  • 增删改的玩法

  • 使用框架中提供的增删改查的方法

  • 分页和排序

  • JpaRepository的使用


是不是很清晰呢,现在开始进入正文,一个一个来:

Spring Data是什么

我们传统的开发中,我们的整个DAO层的代码上都是相对来说,都是比较复杂的,在这种情况下,Spring团队就考虑到一个问题,能不能开发一个框架,这个框架能够最大限度的减少DAO层的开发呢?

Spring Data就是为了简化DAO层操作的一个框架

传统的增删改查在我们的Spring Data中已经实现了,也就是说大部分的DAO层操作部分不用写了,仅仅只是需要编写复杂的业务的调用就可以啦


Spring

写的这部分的代码,是需要写接口的声明就可以啦,不用写实现,这个实现是自动实现的

Spring Data能干什么

主要用途:


  • 传统的增删改查

  • 排序

  • 分页

  • 排序后分页


即使你需要写DAO,也只是写声明就可以啦,不用写实现

Spring Data的第一个HelloWorld程序(JPA、Hibernate、Spring、SpringMVC、Spring Data)

导包


Spring

编写配置文件

<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
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/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd">

<!--引入Properties文件-->
<context:property-placeholder location="classpath:config/db.properties"/>

<!--配置c3p0的连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="$driverClass"></property>
<property name="jdbcUrl" value="$url"></property>
<property name="user" value="$user"></property>
<property name="password" value="$password"></property>
<property name="acquireIncrement" value="$acquireIncrement"></property>
<property name="maxPoolSize" value="$maxPoolSize"></property>
<property name="minPoolSize" value="$minPoolSize"></property>
<property name="maxStatements" value="$maxStatements"></property>
</bean>

<!--配置JPA实现产品的适配器-->
<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
</bean>

<!--配置EntityManager对象-->

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<!--注入数据源-->
<property name="dataSource" ref="dataSource"></property>
<!--扫描entity包的-->
<property name="packagesToScan" value="com.qy.helloworld"></property>
<!--注入JPA实现产品的适配器-->
<property name="jpaVendorAdapter" ref="jpaVendorAdapter"></property>
<!--配置的是Hibernate的其他配置 除了连接数据库4大要素之外的其余配置-->
<property name="jpaProperties">
<props>
<!--是否自动创建表 -->
<prop key="hibernate.hbm2ddl.auto">update</prop>
<!--配置是否展示SQL-->
<prop key="hibernate.show_sql">true</prop>
<!--是否格式化SQL-->
<prop key="hibernate.format_sql">true</prop>
<!--连接数据库的方言-->
<prop key="hibernate.dialect">org.hibernate.dialect手摸手教你让Laravel开发Api更得心应手

手摸手教你微信小程序开发之自定义组件

手摸手教你 HTTPS 的原理(通俗易懂!)

手摸手教你玩转 vue render 函数

张三李四手摸手教你 HTTPS 的原理(通俗易懂!)

编译实战 | 手摸手教你在Windows环境下运行Redis6.x