热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringData系列一SpringData的环境搭建

原标题:SpringData系列一SpringData的环境搭建文章来源地址30048.

原标题:SpringData系列一 Spring Data的环境搭建

 文章来源地址30048.html本节作为主要讲解Spring Data的环境搭建


  • JPA Spring Data :致力于减少数据访问层(DAO)的开发量。开发者唯一要做的就是声明持久层的接口,其他都交给Spring Data JPA来帮你完成!

  • 使用Spring Data JPA进行持久层开发需要的四个步骤:



  1. 配置Spring 整合 JPA

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

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

  4. 在接口中声明需要的方法。Spring Data将根据给定的策略,来为其生成实现代码。



  • 环境搭建

   1.所需要的包

    ① 加入spring包

      spring-aop-4.3.8.RELEASE.jar
      spring-aspects-4.3.8.RELEASE.jar
      spring-beans-4.3.8.RELEASE.jar
  www.yii666.com    spring-context-4.3.8.RELEASE.jar
      spring-core-4.3.8.RELEASE.jar
      spring-expression-4.3.8.RELEASE.jar
      spring-jdbc-4.3.8.RELEASE.jar
      spring-orm-4.3.8.RELEASE.jar
      spring-tx-4.3.8.RELEASE.jar
      spring-web-4.3.8.RELEASE.jar
      spring-webmvc-4.3.8.RELEASE.jar
      com.springsource.net.sf.cglib-2.2.0.jar
      com.springsource.org.aopalliance-1.0.0.jar
      com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
      commons-logging-1.1.1.jar
    ② 加入hibernate包
      antlr-2.7.7.jar
      dom4j-1.6.1.jar
      hibernate-commons-annotations-4.0.5.Final.jar
      hibernate-core-4.3.11.Final.jar
      hibernate-jpa-2.1-api-1.0.0.Final.jar
      jandex-1.1.0.Final.jar
      javassist-3.18.1-GA.jar
      jboss-logging-3.1.3.GA.jar
      jboss-logging-annotations-1.2.0.Beta1.jar
      jboss-transaction-api_1.2_spec-1.0.0.Final.jar
    ③ 加jpa的包
      hibernate-entitymanager-4.3.11.Final.jar
    ④ 加c3p0的包
      c3p0-0.9.2.1.jar
      hibernate-c3p0-4.3.11.Final.jar
      mchange-commons-java-0.2.3.4.jar
    ⑤ 加mysql的驱动
      mysql-connector-java-5.1.7-bin.jar
    ⑥加入springData
      spring-data-commons-1.6.2.RELEASE.jar
      spring-data-jpa-1.4.2.RELEASE.jar
    ⑦加入 slf4j-api-1.6.1.jar

  2.Spring Bean配置文件



1 xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
4 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
6 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
7 http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
8 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
9 <context:property-文章来源地址30048.htmlplaceholder location="classpath:db.properties" />
10
11 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
12 <property name="user" value="${jdbc.user}">property>
13 <property name="password" value="${jdbc.password}">property>
14 <property name="jdbcUrl" value="${jdbc.jdbcUrl}">property>
15 <property name="driverClass" value="${jdbc.driverClass}">property>
16 bean>
17
18 <bean id="entityManagerFactory"
19 class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
20 <property name="dataSource" ref="dataSource">property>
21
22 <property name="jpaVendorAdapter">
23 <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">bean>
24 property>
25 <property name="packagesToScan" value="com.ntjr.springdata">property>
26 <property name="jpaProperties">
27 <props>
28
29
31
32 <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategyprop>
33
34 <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialectprop>
35 <prop key="hibernate.show_sql">trueprop>
36 <prop key="hibernate.format_sql">trueprop>
37 <prop key="hibernate.hbm2ddl.auto">updateprop>
38 props>
39 property>
40 bean>
41
42 <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
43 <property name="entityManagerFactory" ref="entityManagerFactory">property>
44 bean>
45
46 <tx:annotation-driven transaction-manager="transactionManager" />
47
48
49 <jpa:repositories base-package="com.ntjr.springdata"
50 entity-manager-factory-ref="entityManagerFactory"
51 transaction-manager-ref="transactionManager">
52 jpa:repositories>
53 beans>


applicationContext.xml

  3.数据库持久类



1 package com.ntjr.springdata;
2
3 import java.util.Date;
4
5 import javax.persistence.Column;
6 import javax.persistence.Entity;
7 import javax.persistence.GeneratedValue;
8 import javax.persistence.Id;
9 import javax.persistence.Table;
10
11 @Table(name = "JPA_PERSONS")
12 @Entity
13 public class Person {
14
15 private Integer id;
16 private String lastName;
17
18 private String email;
19 private Date birth;
20
21 @GeneratedValue
22 @Id
23 public Integer getId() {
24 return id;
25 }
26
27 public void setId(Integer id) {
28 this.id = id;
29 }
30
31 public String getLastName() {
32 return lastName;
33 }
34
35 @Column(name = "LAST_NAME")
36 public void setLastName(String lastName) {
37 this.lastName = lastName;
38 }
39
40 public String getEmail() {
41 return email;
42 www.yii666.com }
43
44 public void setEmail(String email) {
45 this.email = email;
46 }
47
48 public Date getBirth() {
49 return birth;
50 }
51
52 public void setBirth(Date birth) {
53 this.birth = birth;
54 }
55
56 @Override
57 public String toString() {
58 return "Person [id=" + id + ", lastName=" + lastName + ", email=" + email + ", birth=" + birth + "]";
59 }
60
61
62 }


Person.java

  4.DAO



1 package com.ntjr.springdata;
2
3 import or文章来源站点https://www.yii666.com/g.springframework.data.repository.Repository;
4
5 /**
6 *
7 * 1、实现Repository接口
8 * 2、通过注解的方式@RepositoryDefinition将一个bean定义为Repository接口
9 */
10 public interface PersonRepsitory extends Repository {
11 // 根据lastName获取对应的person
12 Person getByLastName(String lastName);
13 }


PersonRepository.java

  5.测试



1 package com.ntjr.springdata.test;
2
3 import org.junit.Test;
4 import org.springframework.context.ApplicationContext;
5 import org.springframework.context.support.ClassPathXmlApplicationContext;
6
7 import com.ntjr.springdata.Person;
8 import com.ntjr.springdata.PersonRepsitory;
9
10 public class SpringDataTest {
11
12 private ApplicationContext ctx = null;
13 {
14 ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
15 }
16
17 @Test
18 public void getPersonForLastName() {
19 PersonRepsitory persOnRepsitory= ctx.getBean(PersonRepsitory.class);
20 Person person = personRepsitory.getByLastName("AA");
21 System.out.println(person);
22 }
23
24
25
26 }


SpringDataTest.java

来源于:SpringData系列一 Spring Data的环境搭建


推荐阅读
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
  • 本文介绍了在sqoop1.4.*版本中,如何实现自定义分隔符的方法及步骤。通过修改sqoop生成的java文件,并重新编译,可以满足实际开发中对分隔符的需求。具体步骤包括修改java文件中的一行代码,重新编译所需的hadoop包等。详细步骤和编译方法在本文中都有详细说明。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 使用Spring AOP实现切面编程的步骤和注意事项
    本文介绍了使用Spring AOP实现切面编程的步骤和注意事项。首先解释了@EnableAspectJAutoProxy、@Aspect、@Pointcut等注解的作用,并介绍了实现AOP功能的方法。然后详细介绍了创建切面、编写测试代码的过程,并展示了测试结果。接着讲解了关于环绕通知的使用方法,并修改了FirstTangent类以添加环绕通知方法。最后介绍了利用AOP拦截注解的方法,只需修改全局切入点即可实现。使用Spring AOP进行切面编程可以方便地实现对代码的增强和拦截。 ... [详细]
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
author-avatar
mysrain3
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有