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 自定义实现类 批量插入 阅读详情

相关推荐

头歌 JAVA 桥接模式实验

这样,通过客户端代码配置不同的 FileConvertor 子类和 DataHandler 子类(如 OracleHandler 或 SQLServerHandle),即可实现从不同数据库读取数据并转换成不同格式的功能,而无需修改已有代码。

m0_74091276的博客 3198

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

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

lisheng19870305的专栏 613

【解决问题】‘vue‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

【解决问题】'vue' 不是内部或外部命令,也不是可运行的程序或批处理文件。

weixin_44566194的博客 4万+

SpringData 基础篇

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

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

线上专利申请(超详细)| 签名确认

在【法人登录】页面点击【证书登录】按钮,弹出证书登录提示框,点击【确 认】按钮,进入到输入证书密码页面,点击【取消】按钮,取消本次操作。企业在提交申请时,需要增加签名,如使用企业账户点击提交,会弹出“法人、代理机构不能签名,请使用经办人签名”,这个时候就需要换个账号了。在需要签名时,将专利官网的登录方式点击法人登录,选择扫码登录,使用移动端经办人账户的扫一扫功能扫描登录。登录完成后,再点击签名,使用移动端扫一扫功能,扫描签名,输入证书号,确认签名,并提交。最后,祝大家的申请都成功!

weixin_62112323的博客 9112

深入URP之Shader篇1: URP Shader概述

我们知道,URP和HDRP都是基于SRP的,尽管现在可以使用Shader Graph编写Shader,但是手写Shader仍然是有一定的优势,特别是在性能方面,手写Shader可以更极致的优化,因此我们在项目中前期都是直接使用Shader Graph编写Shader,项目后期会改成手写Shader来提高性能。而在SRP中手写Shader,我们仍然使用的是Shader Lab,这个结构并没有太大的变化,但是SRP Shader中使用Shader Lab语言还是有几点不同。

聚焦游戏和图形引擎开发技术 4639

大数据技术之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

【python基础】一文掌握 Jupyter Notebook 的使用(超级详细!)

是一个非营利组织,致力于为多种编程语言的交互式计算开发开源软件、开放标准和服务。Jupyter 于 2014 年由 Fernando Pérez 从IPython衍生出来,支持几十种编程语言的执行环境。Jupyter 项目主要开发并支持(.ipynb 文件格式)、JupyterHub和JupyterLab等交互式计算产品。

数据知道的博客 1万+

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

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

sdyua的博客 1385

华为od 面试八股文_C++_04_含答案

华为od 面试八股文_C++_04_含答案

MISAYAONE的博客 2473

2020计算机专业保研夏令营面经:中科院计算所网数机试题目

计算所网络数据科学与技术重点实验室的第一阶段是机试。机试不限程序语言,要求提交源代码。

乔卿的博客 2957

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

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

lcb611118的博客 304

软考中级-软件设计师 Python基础

软考中级-软件设计师 Python知识点整理

片言可决讼,半纸能缚龙 3643

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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SpringBoot与SpringData集成

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

AI天才研究院 830

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SpringData整合JPA的配置

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

cnm_csdn_wt的博客 304

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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、付费专栏及课程。

余额充值