gpt4 book ai didi

java - 从 Gradle、Spring 和 DB2 开始的挑战

转载 作者:搜寻专家 更新时间:2023-11-01 03:04:53 25 4
gpt4 key购买 nike

我对该项目的想法是使用 Gradle 编写一个简单的 Spring 纯 Java 应用程序,它将连接到 DB2 数据库并提取一些数据并在控制台上打印。

首先,我使用 Eclipse Luna 创建了一个 Gradle 项目。

我的挑战:

  1. 如何读取 src/main/resources 中包含 db.driver、db.url、db.username 和 db.password 的 database.properties 文件?

  2. 我如何告诉 Gradle 为驱动程序获取我的 db2cc4.jar?我无法使用 Gradle 依赖项来管理它,因为它是一个专有 jar。

这是我的build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'

repositories {
mavenCentral()
}

jar {
baseName = 'QueryExecutor'
version = '0.1.0'
}

dependencies {
compile 'org.springframework:spring-context:4.1.0.RELEASE'
compile 'org.springframework:spring-jdbc:4.1.0.RELEASE'
runtime files('lib/db2cc4.jar')
testCompile 'junit:junit:4.+'
}

task wrapper(type: Wrapper) {
gradleVersion = '2.1'
}

这是我的 ApplicationConfig.java

import javax.annotation.Resource;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;

import org.shrinathk.queryexecutor.persistence.QueryExecutorDAO;

@Configuration
@Import({DatabaseConfig.class})
@PropertySource("classpath:application.properties")
@PropertySource("classpath:database.properties")
public class ApplicationConfig
{
@Resource
private Environment env;

@Bean
public QueryExecutorDAO queryExecutor()
{
return new org.shrinathk.queryexecutor.persistence.QueryExecutorDAO();
}
}

这是我的 DatabaseConfig.java

import javax.annotation.Resource;
import javax.sql.DataSource;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@EnableTransactionManagement
public class DatabaseConfig
{

private static final String PROPERTY_NAME_DATABASE_DRIVER = "db.driver";
private static final String PROPERTY_NAME_DATABASE_URL = "db.url";
private static final String PROPERTY_NAME_DATABASE_USERNAME = "db.username";
private static final String PROPERTY_NAME_DATABASE_PASSWORD = "db.password";

@Resource
private Environment env;

@Bean
public DataSource dataSource()
{
DriverManagerDataSource dataSource = new DriverManagerDataSource();

dataSource.setDriverClassName(env.getRequiredProperty(PROPERTY_NAME_DATABASE_DRIVER));
dataSource.setUrl(env.getRequiredProperty(PROPERTY_NAME_DATABASE_URL));
dataSource.setUsername(env.getRequiredProperty(PROPERTY_NAME_DATABASE_USERNAME));
dataSource.setPassword(env.getRequiredProperty(PROPERTY_NAME_DATABASE_PASSWORD));

return dataSource;
}
}

database.properties 文件

db.driver=com.ibm.db2.jcc.DB2Driver
db.url=jdbc:db2://localhost:50000/SAMPLE
db.username=db2admin
db.password=db2admin

这是我的项目结构:

Project Structure

谢谢!

最佳答案

  1. 项目的结构(例如 src/main/resources)与在 maven 中的结构相同。当您准备要部署的工件时,它应该会自动移动到适当的位置。

  2. 在添加db2jcc.ar 依赖项时,您需要的是flatDir。或在 dependencies 部分下添加以下代码:

    编译fileTree(dir: 'lib', include: '*.jar')

关于java - 从 Gradle、Spring 和 DB2 开始的挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com