SpringData开发步骤

Spring Data 技术详解与最佳实践 Spring Data 是一个用于简化数据访问层开发的框架,它通过提供一组通用的接口和抽象,使得开发者可以更轻松地与不同的数据存储进行交互。关系型数据库:JPA、JDBCNoSQL 数据库搜索引擎图形数据库:Neo4jSpring Data JPA 支持通过方法命名约定来实现查询。答案:Spring Data JPA 是 Spring Data 框架的一部分,用于简化 JPA(Java Persistence API)的使用。 阅读详情
使用 Spring Data JPA 进行持久层开发需要的四个步骤:

1.配置 Spring 整合 JPA

第一步:导入所需的jar包

第二步:创建一个Spring的applicationContext.xm文件来整合

在 Spring 配置文件中配置 Spring Data,让 Spring 为声明的接口创建代理对象。配置了 <jpa:repositories> 后,Spring 初始化容器时将会扫描 base-package  指定的包目录及其子目录,为继承 Repository 或其子接口的接口创建代理对象,并将代理对象注册为 Spring Bean,业务层便可以通过 Spring 自动封装的特性来直接使用该对象。

1)创建一个db.properties文件来防数据库的连接信息

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/mybatis
db.username=root
db.password=root
2)创建一个applicationContext.xml的文件
<?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:jpa="http://www.springframework.org/schema/data/jpa" xmlns:tx="http://www.springframework.org/schema/tx"
       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/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!--pezhi-->
    <context:component-scan base-package="org.peter.service"/>
    <context:property-placeholder location="classpath:db.properties"/>
    <bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource">
        <property name="driverClassName" value="${db.driver}"/>
        <property name="url" value="${db.url}"/>
        <property name="username" value="${db.username}"/>
        <property name="password" value="${db.password}"/>
    </bean>
    <!--配置JPA,,替代之前JPA中的persistence.xml文件-->
    <bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
        <property name="dataSource" ref="dataSource"/>
        <!--配置JPA的实现类的适配器-->
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
        </property>
        <!--配置所有Model的位置-->
        <property name="packagesToScan" value="org.peter.model"></property>
        <property name="jpaProperties">
            <props>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
            </props>
        </property>
    </bean>
    <!--配置Spring Data,base-package表示要扫描的包-->
    <jpa:repositories base-package="org.peter.dao" entity-manager-factory-ref="entityManagerFactory"></jpa:repositories>

    <bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"/>
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

第三步:创建一个model层 user

package org.peter.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 * Created by Lenovo on 2017/7/28.
 */
@Entity(name = "t_user")
public class User {
    private Long id;
    private String username;
    private String password;
    private String address;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}
这里创建的model其实就是JPA里创建model是一样的

第四步:创建dao层,并且创建UserDao

声明持久层的接口,该接口继承  Repository,Repository 是一个标记型接口,它不包含任何方法,如必要,Spring Data 可实现 Repository 其他子接口,其中定义了一些常用的增删改查,以及分页相关的方法。

package org.peter.dao;

import org.peter.model.User;
import org.springframework.data.repository.Repository;

/**
 * Created by Lenovo on 2017/7/28.
 */
public interface UserDao extends Repository<User,Long>{
    User findById(Long id);
}

第四步:创建service层 并创建UserService

package org.peter.service;

import org.peter.dao.UserDao;
import org.peter.model.User;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;

/**
 * Created by Lenovo on 2017/7/28.
 */
@Service
@Transactional
public class UserService {
    @Resource
    UserDao userDao;
    public User findById(Long id){
        User user = userDao.findById(id);
        return user;
    }
}

第五步:创建一个main类做测试

package org.peter;

import org.junit.Test;
import org.peter.model.User;
import org.peter.service.UserService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by Lenovo on 2017/7/28.
 */
public class main {

    private ClassPathXmlApplicationContext ctx;
    private UserService userService;
    {
        ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        userService = ctx.getBean(UserService.class);
    }

    @Test
    public void findById(){
      User user = userService.findById(1l);
      System.out.println(user);
    }
}

代码资料:http://download.youkuaiyun.com/detail/strive_peter/9913801






SpringData JPA 自定义实现类 批量插入 阅读详情

相关推荐

win10下Miracast无线投屏使用教程及异常解决方案(超详细)

文章目录一、什么是Miracast?二、主流的无线投屏技术有哪些特点?三、如何查看自己的win10电脑是否支持Miracast无线投屏功能?四、win10电脑如何使用Miracast无线投屏功能? 一、什么是Miracast? Miracast是由Wi-Fi联盟于2012年所制定,以Wi-Fi直连(Wi-Fi Direct)为基础的无线显示标准。支持此标准的3C设备(如智能手机、电视、投影、电脑等...

帅气的小白的博客 44万+

SpringBoot实现动态切换数据源:轻松应对复杂多变业务需求!

上述提到了ThreadLocal和AbstractRoutingDataSource,我们来对其进行简单介绍下。:想必大家必不会陌生,全称:thread local variable。主要是为解决多线程时由于并发而产生数据不一致问题。ThreadLocal为每个线程提供变量副本,确保每个线程在某一时间访问到的不是同一个对象,这样做到了隔离性,增加了内存,但大大减少了线程同步时的性能消耗,减少了线程并发控制的复杂程度。ThreadLocal作用:在一个线程中共享,不同线程间隔离。

lisheng19870305的专栏 613

Apk脱壳圣战之---脱掉“梆梆加固”的保护壳

一、前言 现如今Android用户的安全意识不是很强,又有一些恶意开发者利用应用的名字吸引眼球,包装一个恶意锁机收费的应用,在用户被骗的安装应用之后,立马手机锁机,需要付费方可解锁。这样的恶意软件是非常让人痛恨的。所以本文就用一个案例来分析如何破解这类应用,获取解锁密码,让被骗的用户可以找回爽快! 二、分析软件锁机原理 本文用的是一款叫做:安卓性能激活.apk,关于样本apk文件后面会...

尼古拉斯.赵四的博客 5061

SpringData 基础篇

Spring Data是Spring Framework的一个子项目,它提供了一种简化数据访问层的方式。它的目标是提供一种统一的、易于使用的编程模型,用于与不同类型的数据存储进行交互,包括关系型数据库、NoSQL数据库、图数据库等。本文主要讲解了SpringData的基本概念,以及什么是JPA,JPA与我们熟知的Hibernate、MyBatis之间的关系。

郝老三~~~~~~~~~~~~~ 2017

线性代数知识点整理

线性代数基础知识点摘要整理

cuguanren的博客 3万+

TLV320AIC3204音频CODEC硬件设计与调试实战

本文深入解析了TLV320AIC3204音频CODEC的硬件设计与调试实战。文章从芯片功能定位入手,详细阐述了电源时钟设计、模拟输入电路等关键硬件设计要点,并提供了软件驱动配置与分层调试方法,帮助工程师有效规避常见陷阱,解决底噪、失真等典型音频调试问题。

zero1的博客 1129

大数据技术之DataX (一)DataX插件开发

文章目录一、背景二、基于java的本地测试datax2.1 github上下载datax的源代码2.2 datax代码导入idea三、docker安装南大通用数据库GBase和GBase 8a3.1 docker安装Gbase 8a3.2 docker安装Gbase 8s三、南大通用数据库GBase 8s To GBase 8a3.1 GBase 8s的reader读插件开发(writer同理)四、南大通用gbase可视化工具4.1 南大通用GBase 8a的连接配置4.2 南大通用GBase 8s的

大数据指北 8851

深入浅出AXI协议(2)——通道及信号

本文我们继续AXI协议的学习,我们将讨论5个通道的具体内容和相对应的信号。这一部分的内容现在对于大家来说可能很难理解,但是没有关系,随着学习的深入,我们会逐步讲解这里面的所有现在,现在只需要把它们当作一个可以查阅的手册,快速阅读有一个基本的印象即可。

apple_53311083的博客 1800

大数据data开发有哪些好的辅助工具?

作为一个程序员开发工具好比是人的手和脚,只有把这些开发工具用好,才能做好一个产品的需求。大多使用SQL数据库存储/检索数据,如今很多情况下,它都不再能满足我们的需求。下面小编就介绍一些大数据data开发常用的辅助工具。 开源企业搜索平台:Solr 用Java编写,来自Apache Lucene项目。Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口...

sdyua的博客 1385

Python 爬虫实战:全国高校录取分数线数据爬取与院校对比分析

本文介绍了一个基于Python的高考志愿填报辅助系统,通过爬取掌上高考平台的全国高校录取分数线数据,构建本地数据库并实现智能分析。系统主要功能包括:1)使用requests+BeautifulSoup爬取院校基本信息和历年分省分科类录取线;2)通过SQLite实现数据持久化与增量更新;3)利用pyecharts生成分数线趋势图、院校对比雷达图等可视化图表;4)提供"冲稳保"三档智能选校推荐。技术栈涵盖网络爬虫、数据清洗、数据库管理和可视化分析,可为考生提供数据驱动的志愿填报决策支持。项目采用模块化设计,包含

u014481728的博客 238

深入理解 Terraform 中的资源更新与管理

摘要:本文探讨Terraform处理AWS安全组名称变更时的行为。当修改不可变属性(如安全组名称)时,Terraform会创建新资源并删除旧资源。通过状态文件比对所需状态与实际状态,Terraform对不可变属性采用"先创建后删除"策略,对可变属性则直接更新。实例演示了修改安全组名称和关联EC2实例时的处理过程,强调理解资源属性可变性对基础设施管理的重要性。(149字)

2501_90323865的博客 473

springdata+jpa 个人学习记录过程,开发步骤,教程

springdata 这篇笔记没有任何知识点,只是本人入门的学习过程,如果有错误,欢迎大家指出改进! 1、新建maven项目,导入pom依赖 依赖就不啰嗦了 2、Web.Xml 导入配置 <context-param> <param-name>contextConfigLocation</param-name> <param-value&gt...

lcb611118的博客 304

Android软键盘系统深度解析:架构、原理与实现

Android软键盘系统深度解析:架构与实现原理 本文系统剖析了Android软键盘的核心工作机制。作为系统级输入服务,软键盘具有双重属性:既是可安装的独立应用,又深度集成于系统框架中。文章详细解读了软键盘的系统架构,包括其与InputMethodManagerService(IMMS)和WindowManagerService(WMS)的交互机制,以及通过InputConnection实现的跨进程通信流程。同时分析了输入法窗口的特殊管理策略、布局调整模式,并深入探讨了输入预测引擎的实现原理,包括词典加载、

保持专注,保持热爱 116

SpringData JPA框架

内容 1.概述 2.开发步骤 3.常用接口 4.方法定义规范 5.常用注解 6.接口方法解析 7.自定义Repository方法 8.SpringData和SpringBoot框架搭建 9.在SpringBoot中使用单元测试 10.附:hibernate常用注解及HQL语句 一SpringData概述 1.SpringData介绍 1.Spring Data : Spring 的一个子项目。...

超域的博客 221

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringBoot与SpringData集成

1.背景介绍 1. 背景介绍 Spring Boot 是一个用于构建新 Spring 应用的快速开始模板,它的目标是简化开发人员的工作,让他们专注于编写业务逻辑而不是配置。Spring Data 是 Spring 生态系统的一个子项目,它提供了一系列的数据访问库,用于简化数据访问层的开发。在本文中,我们将探讨如何将 Spring Boot 与 Spring Data 集成,以便更高效地开发 S...

AI天才研究院 830

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SpringData整合JPA的配置

SpirngData与JPA的集成,虽然在SpringBoot中,集成很容易,可是有时候并不知道到底要集成哪些东西,现在用xml配置来说明 一下。 指定properties文件的位置,这个大家都很清楚了,Spring基础知识。 <context:property-placeholder location="classpath:db.properties" /> 1.配置数据源...

cnm_csdn_wt的博客 304

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SpringBoot-整合-SpringData jpa -简单使用(8)

简介: springData 它是基于ORM框架 ,JPA规范封装的一套JAP应用框架,可以使开发者用既简单的代码即可实现对 数据库的访问和操作。它提供了包括增删改查 等在内容的常用功能,且易于扩展 使用springData JAP 可以极大提高开发效率 创建 SpringBoot -SpringData JAP 项目(开发工具idea) 1) 2)配置application.prop...

T 2420

Spring Data JPA的开发步骤

Spring Data JPA是简化基于JPA和Spring整合应用开发,从此之后,持久层无需实现类,只需接口即可!1.  导入spring data  jpa坐标&lt;dependency&gt;              &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;              &lt;artifactId&...

火山九日的博客 333

SpringBoot与SpringData的集成

1.背景介绍 1. 背景介绍 Spring Boot 和 Spring Data 是 Spring 生态系统中两个非常重要的组件。Spring Boot 是一个用于简化 Spring 应用程序开发的框架,而 Spring Data 是一个用于简化数据访问层开发的框架。这两个框架的集成可以让开发者更加轻松地构建高性能、可扩展的应用程序。 在本文中,我们将深入探讨 Spring Boot 和 S...

AI天才研究院 384

Spring 与SpringData的整合

SpringData作用: 致力于减少数据库访问层的开发量,开发者唯一要做的就是声明持久层的接口 ,其他的都交由SpringData JPA 来帮我们完成 使用Spring Data JPA进行持久层开发需要的步骤 配置Spring 整合JPA在Spring配置文件中配置SpringData,让Spring为声明的接口创建对象代理对象,配置了 ,Spring 初始化容器将会扫描ba

ZQ741552720的博客 529

SpringBoot、SpringData、Hibernate、MyBatis整合进行微、轻量级服务接口开发,然后结合freemarker和Jsp进行前后端结合。

1、开发准备           开发工具:IntelliJ IDEA 2018.1;开发环境:jdk1.8_181 Version ; maven_3.5.3 Version (maven用远程仓库映射) 2、开始开发       2.1 搭建开发环境           点击 :File --&gt;New --&gt;Project 点击project后,开始选择要生成的pro...

陈大伟的博客 1430

Spring Data JPA

使用Spring Data JPA开发步骤 1.        导入相关jar包 2.        配置applicationContext.xml配置文件 1)        配置数据源 2)        配置JPA的EntityManagerFactory 3)        配置事务管理器

①杯空氣的博客 354

Spring Data 概述

Spring Data 概述 Spring Data : Spring 的一个子项目。用于简化数据库访问,支持NoSQL 和 关系数据存储。其主要目标是使数据库的访问变得方便快捷。 SpringData 项目所支持 NoSQL 存储: MongoDB (文档数据库) Neo4j(图形数据库) Redis(键/值存储) Hbase(列族数据库) SpringData 项目所支持的关系数...

①杯空氣的博客 1048

看Spring Data如何简化数据操作

Spring Data 概述 Spring Data 用于简化数据库访问,支持NoSQL 和 关系数据存储,其主要目标是使数据库的访问变得方便快捷。 SpringData 项目所支持 NoSQL 存储: MongoDB (文档数据库) Neo4j(图形数据库) Redis(键/值存储) Hbase(列族数据库) SpringData 项目所支持的关系数据存储技术: JDBC JPA Spri...

weixin_43770982的博客 298

Spring ORM+Hibernate?Out!换 Spring Data JPA 吧!

[-]1简介2开发步骤3主要的接口4创建查询的方法    41Query creation from method names解析方法名    42通过 Query 创建查询    43JPA NamedQueries命名查询    44查询创建策略    45为接口中部分方法提供自定义实现5调用存储过程6Query by Example7事务8附录转载请注明出处:http://blog.csdn...

joefany的博客 231
上一篇: 初识SpringData
下一篇: SpringData特有的查询
@夫子慧
博客等级 码龄9年 9粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值