Aadesh P
Aadesh P

Reputation: 245

How Do I Add PostgreSQL DataSource To Java Spring REST API Project?

I am currently developing a java spring REST API using gradle, and I just can't figure out where to declare my postgresql datasource or how to even do it. Every example I have found on google is with maven and not with gradle. Is there any example code I can look at, because I am not sure how to declare my datasource at all.

Upvotes: 2

Views: 583

Answers (1)

Johnson Abraham
Johnson Abraham

Reputation: 781

You can a connection pooling solution like BoneCP. With BoneCP you can define a pooled Datasource and inject the datasource into your DAO's. With BoneCP you can define a bean like this

<bean id="bonecpDs" class="com.jolbox.bonecp.BoneCPDataSource"
    lazy-init="true" destroy-method="close">
    <property name="driverClass" value="${jdbc.driverclassname}" />
    <property name="jdbcUrl" value="${jdbc.connection.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <property name="idleConnectionTestPeriodInMinutes" value="${db.idleconnectiontestperiod}" />
    <property name="idleMaxAgeInMinutes" value="${db.idlemaxage}" />
    <property name="maxConnectionsPerPartition" value="${db.poolsize}" />
    <property name="minConnectionsPerPartition" value="${db.minpoolsize}" />
    <property name="partitionCount" value="${db.numpools}" />
    <property name="acquireIncrement" value="${db.acquireincrement}" />
    <property name="releaseHelperThreads" value="${db.releasehelperthreads}" />
    <property name="statementReleaseHelperThreads" value="${db.statementreleasehelperthreads}" />
    <property name="disableConnectionTracking" value="${db.disableconnectiontracking}" />
    <property name="closeConnectionWatch" value="${db.closedconnnectionwatch}" />
    <property name="connectionTimeoutInMs" value="${db.connectiontimeout}" />
    <property name="connectionTestStatement" value="select now()" />
    <property name="lazyInit" value="true"/>
</bean>

These are possible properties it takes. You can skip the optional ones and provide your driverClass, jdbc url, uname and password.

This bean can then be used into your DAO's as follows

Connection con = bonecpDs.getConnection();

Upvotes: 1

Related Questions