发布于 2016-12-21 10:29:01 | 209 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Spring Data 基于Spring框架的数据访问计数

Spring Data 项目的目的是为了简化构建基于 Spring 框架应用的数据访问计数,包括非关系数据库、Map-Reduce 框架、云数据服务等等;另外也包含对关系数据库的访问支持。


Spring Data 项目的主要目标是使构建使用数据访问技术的 Spring 应用程序变得更加容易。此模块处理增强基于 MyBatis 的数据访问层的支持。

通过使用此模块,你可以在基于MyBatis为ORM的结构下使用Spring Data模式带来的便利性。

如果你还没有接触过Spring Data,建议先了解下该项目

支持的一些特性

  • 对标准Entity支持完整CRUD操作

  • 支持通过接口中的方法名生成对应的查询

  • 提供基础属性的实体基类

  • 支持透明审计(如创建时间、最后修改)

  • 自持自定义编写基于MyBatis的查询,方便而不失灵活性

  • 方便的与Spring集成

  • 支持MySQL、Oracle、SQL Server、H2、PostgreSQL等数据库

获得帮助

这里有一份文档可以帮助你快速学习 Spring Data Mybatis。 reference documentation

如果你有任何疑问或者建议,可以录一个issue 给我。

快速开始

通过 Maven 引入依赖包:

<dependency>   <groupId>com.ifrabbit</groupId>   <artifactId>spring-data-mybatis</artifactId>   <version>1.0.5.RELEASE</version> </dependency>

最简单的通过Java注解配置的Spring Data Mybatis 配置如下所示:

@Configuration @EnableMybatisRepositories(         value = "org.springframework.data.mybatis.repository.sample",         mapperLocations = "classpath*:/org/springframework/data/mybatis/repository/sample/mappers/*Mapper.xml" ) public class TestConfig {      @Bean     public DataSource dataSource() throws SQLException {         return new EmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.H2).addScript("classpath:/test-init.sql").build();     }      @Bean     public SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource) {         SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();         factoryBean.setDataSource(dataSource);         return factoryBean;     }      @Bean     public PlatformTransactionManager transactionManager(DataSource dataSource) {         return new DataSourceTransactionManager(dataSource);     }  }

创建一个实体类:

@Entity public class User extends LongId {    private String firstname;   private String lastname;           // Getters and setters   // (Firstname, Lastname)-constructor and noargs-constructor   // equals / hashcode }

创建一个数据操作接口,使用包名 com.example.repositories:

public interface UserRepository extends CrudRepository<User, Long> {   List<User> findByLastname(String lastname);      }

编写一个测试用例:

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = AppConfig.class) public class UserRepositoryIntegrationTest {         @Autowired UserRepository repository;         @Test   public void sampleTestCase() {     User dave = new User("Dave", "Matthews");     dave = repository.save(dave);               User carter = new User("Carter", "Beauford");     carter = repository.save(carter);               List<User> result = repository.findByLastname("Matthews");     assertThat(result.size(), is(1));     assertThat(result, hasItem(dave));   } }

这样就完成了。

使用 Spring Boot

通过maven引入:

<dependency>     <groupId>com.ifrabbit</groupId>     <artifactId>spring-boot-starter-data-mybatis</artifactId>     <version>1.0.5.RELEASE</version> </dependency>

如果你需要使用自己编写的Mybatis Mapper,需要在application.properties中配置:

spring.data.mybatis.mapper-locations=classpath*:/org/springframework/data/mybatis/samples/mappers/*Mapper.xml

在Spring Boot中你不需要自己去定义SqlSessionFactory.

完整的代码如下:

@SpringBootApplication public class SpringDataMybatisSamplesApplication {      public static void main(String[] args) {         SpringApplication.run(SpringDataMybatisSamplesApplication.class, args);     }      @Bean     public CommandLineRunner dummyCLR(ReservationRepository reservationRepository) {         return args -> {             Stream.of("Tom", "Jack", "Apple")                     .forEach(name -> reservationRepository.save(new Reservation(name)));         };     }  }  @RepositoryRestResource // here we use RepositoryRestResource interface ReservationRepository extends MybatisRepository<Reservation, Long> { }  @Entity class Reservation extends LongId {      private String reservationName;      public Reservation() {     }      public Reservation(String reservationName) {         this.reservationName = reservationName;     }      public String getReservationName() {         return reservationName;     }      @Override     public String toString() {         return "Reservation{" +                 "reservationName='" + reservationName + ''' +                 '}';     } }

完整的例子可以在 https://github.com/hatunet/spring-data-mybatis-samples 找到。



历史版本 :
Spring Data Commons 2.0.1 发布
Spring Data Kay GA 版正式发布,包含大量更新
Spring Data Commons 1.13.7 和 2.0.0 RC3 发布
Spring Data Commons 1.13.6 发布
Spring Data Commons 2.0.0.RC2 发布
Spring Data Commons 1.13.5 发布
Spring Data Commons 2.0.0.M4 发布
Spring Data Commons 1.13.4 发布
Spring Data Commons 1.12.11 发布
Spring Data Commons 1.2.11 发布
Spring Data Commons 2.0.0.M3 发布
Spring Data Commons 1.13.3 和 1.12.10 发布
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务