带有gradle的Mysql jdbc ojdcn

问题描述 投票:0回答:1

我有一个正在处理的纯Java项目,它正在使用gradle。我想连接到数据库(我的SQL)。

我应该在gradle构建文件中放什么?有人可以建议使用逐步解决方案吗?我只想查询数据库,问候

这是我的代码:

import java.sql.*;

    public class DBSupport {


       private  String url = "jdbc:mysql://10.90.256.15639.3306/guro";
       private String user = "jlkjhmhj";
       private String password = "jhgjkggh";


       public void getUserFromDB() throws ClassNotFoundException, IllegalAccessException, InstantiationException, SQLException {
           Class.forName("com.mysql.jdbc.Driver");
           Connection conn = DriverManager.getConnection(url, user, password);
           Statement stmt = conn.createStatement();
           ResultSet rowResult = stmt.executeQuery("select id from users where email = '[email protected]';`");
           String userId = rowResult.getString("id");
       }

这是我的例外

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

这是我的gradle构建文件

plugins {
    id 'java'
}


group = 'com.kjh.f68453132on'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
}

repositories {
    maven {
        name "snapshot"
        url "http://artifactory.service.ia65452131.ta54331165a.pr623d:8081/artifactory/libs-snapshot"
    }

    maven {
        name "release"
        url "http://artifactory.service.ia8u46:8081/artifactory/libs-release"
    }

//    mavenLocal()
}

ext {
    set('swaggerVersion', "2.9.2")
}

dependencies {
        compile 'org.testng:testng:7.1.0'
        compile 'org.testng:testng:6.4.13'
        compile 'io.appium:java-client:7.1.0'
        compile 'org.apache.commons:commons-lang3:3.0'
    compile group: 'org.jasypt', name: 'jasypt', version: '1.9.2'
    compile group: 'de.qaware.jasypt', name: 'jasypt-hibernate5', version: '1.9.2'

    implementation 'io.lettuce:lettuce-core:5.1.7.RELEASE'
    implementation 'io.jsonwebtoken:jjwt:0.9.1'
    implementation 'ma.glasnost.orika:orika-core:1.5.4'
    implementation 'com.opencsv:opencsv:4.1'
    implementation 'com.googlecode.json-simple:json-simple:1.1.1'
    //runtimeOnly 'mysql:mysql-connector-java'

    // swagger
    compile("io.springfox:springfox-swagger-ui:$swaggerVersion")
    compile("io.springfox:springfox-swagger2:$swaggerVersion") {
        exclude module: 'swagger-annotations'
        exclude module: 'swagger-models'
    }
    compile("io.swagger:swagger-annotations:1.5.21")
    compile("io.swagger:swagger-models:1.5.21")
}
java mysql gradle
1个回答
0
投票
  @PostConstruct
public void init(){
    if (currentEnvironment != null && !"Local".equalsIgnoreCase(currentEnvironment)) {
        String secret = awsSecretsManagerService.getSecretValueForMySQL(defaultClientId);
        try {
            JSONObject connectionJson = new JSONObject(secret);
            dataSourceUserName = (String)connectionJson.get("username");
            dataSourcePassword = (String)connectionJson.get("password");
            dataSourceUrl = "jdbc:mysql://" + (String)connectionJson.get("host") + "/" + modulename;
        } catch (JSONException e) {
            logger.error("Could not load mysql configuration");
        }
    }
}
/**
 * Generate Datasource object from env variables
 * @return
 */
@Bean
@Primary
public DataSource dataSource() {
    logger.info("---------Loading Database configuration--------");
    org.apache.tomcat.jdbc.pool.DataSource dataSource =  (org.apache.tomcat.jdbc.pool.DataSource) DataSourceBuilder
            .create()
            .username(dataSourceUserName)
            .password(dataSourcePassword)
            .url(dataSourceUrl)
            .driverClassName(driverClassName)
            .build();
    dataSource.setTestOnBorrow(true);
    dataSource.setMaxActive(75);
    dataSource.setMaxIdle(25);
    dataSource.setMinIdle(10);
    dataSource.setInitialSize(10);
    dataSource.setJdbcInterceptors("org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer");
    //            dataSource.setTimeBetweenEvictionRunsMillis(34000);
    //            dataSource.setMinEvictableIdleTimeMillis(40000);
    dataSource.setRemoveAbandoned(true);
    dataSource.setRemoveAbandonedTimeout(60);
    dataSource.setValidationInterval(34000);
    dataSource.setValidationQuery("SELECT 1");
    return dataSource;
}

inside application.properties

© www.soinside.com 2019 - 2024. All rights reserved.