Spring Data MyBatis Boot Starter

Spring Data module for MyBatis repositories.

Лицензия

Лицензия

Категории

Категории

Данные MyBatis ORM
Группа

Группа

io.easybest
Идентификатор

Идентификатор

spring-data-mybatis-boot-starter
Последняя версия

Последняя версия

2.0.1.RELEASE
Дата

Дата

Тип

Тип

jar
Описание

Описание

Spring Data MyBatis Boot Starter
Spring Data module for MyBatis repositories.
Ссылка на сайт

Ссылка на сайт

https://github.com/easybest/spring-data-mybatis
Организация-разработчик

Организация-разработчик

EasyBest
Система контроля версий

Система контроля версий

https://github.com/easybest/spring-data-mybatis

Скачать spring-data-mybatis-boot-starter

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/io.easybest/spring-data-mybatis-boot-starter/ -->
<dependency>
    <groupId>io.easybest</groupId>
    <artifactId>spring-data-mybatis-boot-starter</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>
// https://jarcasting.com/artifacts/io.easybest/spring-data-mybatis-boot-starter/
implementation 'io.easybest:spring-data-mybatis-boot-starter:2.0.1.RELEASE'
// https://jarcasting.com/artifacts/io.easybest/spring-data-mybatis-boot-starter/
implementation ("io.easybest:spring-data-mybatis-boot-starter:2.0.1.RELEASE")
'io.easybest:spring-data-mybatis-boot-starter:jar:2.0.1.RELEASE'
<dependency org="io.easybest" name="spring-data-mybatis-boot-starter" rev="2.0.1.RELEASE">
  <artifact name="spring-data-mybatis-boot-starter" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.easybest', module='spring-data-mybatis-boot-starter', version='2.0.1.RELEASE')
)
libraryDependencies += "io.easybest" % "spring-data-mybatis-boot-starter" % "2.0.1.RELEASE"
[io.easybest/spring-data-mybatis-boot-starter "2.0.1.RELEASE"]

Зависимости

compile (9)

Идентификатор библиотеки Тип Версия
org.springframework.boot : spring-boot-autoconfigure jar 2.3.3.RELEASE
org.springframework.boot : spring-boot-starter-jdbc jar 2.3.3.RELEASE
io.easybest : spring-data-mybatis jar 2.0.1.RELEASE
org.mybatis : mybatis jar 3.5.5
org.mybatis : mybatis-spring jar 2.0.5
org.mybatis.spring.boot : mybatis-spring-boot-starter jar 2.1.3
org.springframework.boot : spring-boot-configuration-processor Необязательный jar 2.3.3.RELEASE
org.slf4j : slf4j-api jar 1.7.26
org.projectlombok : lombok Необязательный jar 1.18.12

Модули Проекта

Данный проект не имеет модулей.

Spring Data MyBatis

Build Status Gitter chat Maven Central License: Apache 2.0

Simplified Chinese

Documentation

Example Project

The primary goal of the Spring Data project is to make it easier to build Spring-powered applications that use data access technologies. This module deals with enhanced support for MyBatis based data access layers.

Features

  • Implementation of CRUD methods for normal Entities
  • Dynamic query generation from query method names
  • Implementation domain base classes providing basic properties
  • Support for transparent auditing (created, last changed)
  • Possibility to integrate custom repository code
  • Easy Spring integration with custom namespace
  • Support MySQL, Oracle, Sql Server, H2, PostgreSQL, etc.
  • Support SpringBoot 2.x

Getting Help

If you have any question, please record a issue to me.

Quick Start

Download the jar through Maven:

<dependency>
  <groupId>io.easybest</groupId>
  <artifactId>spring-data-mybatis</artifactId>
  <version>2.0.1.RELEASE</version>
</dependency>

The simple Spring Data Mybatis configuration with Java-Config looks like this:

@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);
    }

}

Create an entity:

@Entity
@Table(name = "user")
public class User extends LongId {

  
  @Condition
  private String firstname;
  @Condition(type=Condition.Type.CONTAINING)  private String lastname;
  private String fullName;
  @Conditions({@Condition, @Condition(type=Condition.Type.CONTAINING,properties = "fuzzyName")})
  private String fullName;
  @Transient
  private String fuzzyName;
  @Column(name = "usertype")
  private String status;
  // Getters and setters
  // (Firstname, Lastname)-constructor and noargs-constructor
  // equals / hashcode
}

When using findAll method of MybatisRepository the @Condition or @Conditions annotations will work

Create a repository interface in com.example.repositories:

public interface UserRepository extends MybatisRepository<User, Long> {
  List<User> findByLastname(String lastname);  
  
  @Query("select firstname from user")
  List<String> findUsersFirstName();
  
}

Write a test client:

@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));
  }
}

Use Spring Boot

add the jar through Maven:

<dependency>
    <groupId>io.easybest</groupId>
    <artifactId>spring-data-mybatis-boot-starter</artifactId>
    <version>2.0.1.RELEASE</version>
</dependency>

If you need custom Mapper, you should add property in your application.yml like this:

mybatis:
  mapper-locations: "classpath*:/mapper/**/**Mapper.xml"

And you need not to define SqlSessionFactory manually.

The full test code like this:

@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
@Table(name = "user")
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 + '\'' +
                '}';
    }
}

The full example you can find in https://github.com/easybest/spring-data-mybatis-samples

Contributing to Spring Data MyBatis

Here are some ways for you to get involved in the community:

  • Github is for social coding: if you want to write code, we encourage contributions through pull requests from forks of this repository.

Help me better - Donation

paypal

Версии библиотеки

Версия
2.0.1.RELEASE