PrettyJDBC-spring5

This project is a decorator PrettyJDBC library for easy integration into Spring Framework 5.

License

License

GroupId

GroupId

com.github.marchenkoprojects
ArtifactId

ArtifactId

prettyjdbc-spring5
Last Version

Last Version

0.5
Release Date

Release Date

Type

Type

jar
Description

Description

PrettyJDBC-spring5
This project is a decorator PrettyJDBC library for easy integration into Spring Framework 5.
Project URL

Project URL

https://github.com/MarchenkoProjects/PrettyJDBC-spring5
Source Code Management

Source Code Management

https://github.com/MarchenkoProjects/PrettyJDBC-spring5

Download prettyjdbc-spring5

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.marchenkoprojects/prettyjdbc-spring5/ -->
<dependency>
    <groupId>com.github.marchenkoprojects</groupId>
    <artifactId>prettyjdbc-spring5</artifactId>
    <version>0.5</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.marchenkoprojects/prettyjdbc-spring5/
implementation 'com.github.marchenkoprojects:prettyjdbc-spring5:0.5'
// https://jarcasting.com/artifacts/com.github.marchenkoprojects/prettyjdbc-spring5/
implementation ("com.github.marchenkoprojects:prettyjdbc-spring5:0.5")
'com.github.marchenkoprojects:prettyjdbc-spring5:jar:0.5'
<dependency org="com.github.marchenkoprojects" name="prettyjdbc-spring5" rev="0.5">
  <artifact name="prettyjdbc-spring5" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.marchenkoprojects', module='prettyjdbc-spring5', version='0.5')
)
libraryDependencies += "com.github.marchenkoprojects" % "prettyjdbc-spring5" % "0.5"
[com.github.marchenkoprojects/prettyjdbc-spring5 "0.5"]

Dependencies

compile (7)

Group / Artifact Type Version
com.github.marchenkoprojects : prettyjdbc jar 0.5
org.springframework : spring-core Optional jar 5.2.9.RELEASE
org.springframework : spring-beans Optional jar 5.2.9.RELEASE
org.springframework : spring-jdbc Optional jar 5.2.9.RELEASE
org.springframework : spring-tx Optional jar 5.2.9.RELEASE
org.springframework : spring-web Optional jar 5.2.9.RELEASE
org.springframework : spring-webmvc Optional jar 5.2.9.RELEASE

provided (1)

Group / Artifact Type Version
javax.servlet : javax.servlet-api Optional jar 4.0.1

test (3)

Group / Artifact Type Version
org.springframework : spring-test jar 5.2.9.RELEASE
junit : junit jar 4.12
org.hsqldb : hsqldb jar 2.5.1

Project Modules

There are no modules declared in this project.

Integrating PrettyJDBC with Spring 5

PrettyJDBC offers a set of Spring integrations that allow it to be used as a full-featured library for the data access layer in Spring applications.

Getting started

Installation

Maven:

<dependency>
    <groupId>com.github.marchenkoprojects</groupId>
    <artifactId>prettyjdbc-spring5</artifactId>
    <version>0.4.1</version>
</dependency>

Gradle:

compile 'com.github.marchenkoprojects:prettyjdbc-spring5:0.4.1'

Configuration

The basic configuration is as follows:

@Configuration
public void Config {

    @Bean
    public DataSource dataSource() {
        return ...
    }
    
    @Bean
    public LocalSessionFactoryBean sessionFactory(DataSource dataSource) {
        LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean();
        localSessionFactoryBean.setDataSource(dataSource);
        return localSessionFactoryBean;
    }
}

The main bean that needs to be configured is LocalSessionFactoryBean which accepts configured DataSource.

If you want to use declarative transaction management in a Spring application, you need to @EnableTransactionManagement and configure PrettyJdbcTransactionManager.

@Configuration
@EnableTransactionManagement
public void Config {
    // LocalSessionFactoryBean and other configuration
    
    @Bean
    public PlatformTransactionManager transactionManager(SessionFactory sessionFactory) {
        PrettyJdbcTransactionManager transactionManager = new PrettyJdbcTransactionManager();
        transactionManager.setSessionFactory(sessionFactory);
        return transactionManager;
    }
}

PrettyJdbcTransactionManager accepts configured SessionFactory from basic configuration.

In applications like Spring Web MVC you must use CurrentSessionManagementInterceptor to control the closure of the current session.

@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new CurrentSessionManagementInterceptor());
    }
}

Versions

Version
0.5
0.4.1
0.4
0.3