SpringBoot中JPA连接DM出现如下问题


【解决办法】
替换工程中引用的Hibernate版本。使用如下几个包:
hibernate-commons-annotations-5.0.1.Final.jar
hibernate-core-5.0.11.Final.jar
hibernate-entitymanager-5.0.11.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
hibernate-validator-5.2.4.Final.jar

【问题】"C:\Program Files\Java\jdk1.8.0_231\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\lib\idea_rt.jar=53250:D:\Program Files\JetBrains\IntelliJ IDEA 2019.1.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_231\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_231\jre\lib\rt.jar;E:\Coding IdeaProjects\smp\smp-admin\target\classes;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-starter-actuator\2.0.6.RELEASE\spring-boot-starter-actuator-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.0.6.RELEASE\spring-boot-actuator-autoconfigure-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-actuator\2.0.6.RELEASE\spring-boot-actuator-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\com\fasterxml\jackson\core\jackson-databind\2.9.7\jackson-databind-2.9.7.jar;D:\repo\smpRepository\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.7\jackson-datatype-jsr310-2.9.7.jar;D:\repo\smpRepository\repository\io\micrometer\micrometer-core\1.0.7\micrometer-core-1.0.7.jar;D:\repo\smpRepository\repository\org\hdrhistogram\HdrHistogram\2.1.10\HdrHistogram-2.1.10.jar;D:\repo\smpRepository\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-starter-cache\2.0.6.RELEASE\spring-boot-starter-cache-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\spring-context\5.0.10.RELEASE\spring-context-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\spring-aop\5.0.10.RELEASE\spring-aop-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\spring-beans\5.0.10.RELEASE\spring-beans-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\spring-expression\5.0.10.RELEASE\spring-expression-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\spring-context-support\5.0.10.RELEASE\spring-context-support-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-starter-freemarker\2.0.6.RELEASE\spring-boot-starter-freemarker-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\freemarker\freemarker\2.3.28\freemarker-2.3.28.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-starter-quartz\2.0.4.RELEASE\spring-boot-starter-quartz-2.0.4.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\spring-tx\5.0.10.RELEASE\spring-tx-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\quartz-scheduler\quartz\2.3.0\quartz-2.3.0.jar;D:\repo\smpRepository\repository\com\mchange\mchange-commons-java\0.2.11\mchange-commons-java-0.2.11.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-devtools\2.0.6.RELEASE\spring-boot-devtools-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot\2.0.6.RELEASE\spring-boot-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.6.RELEASE\spring-boot-autoconfigure-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-configuration-processor\2.0.6.RELEASE\spring-boot-configuration-processor-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\projectlombok\lombok\1.16.22\lombok-1.16.22.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-starter\2.0.6.RELEASE\spring-boot-starter-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\repo\smpRepository\repository\org\springframework\spring-core\5.0.10.RELEASE\spring-core-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\spring-jcl\5.0.10.RELEASE\spring-jcl-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\yaml\snakeyaml\1.19\snakeyaml-1.19.jar;D:\repo\smpRepository\repository\org\springframework\spring-webmvc\5.0.10.RELEASE\spring-webmvc-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-starter-logging\2.0.6.RELEASE\spring-boot-starter-logging-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\repo\smpRepository\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\repo\smpRepository\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;D:\repo\smpRepository\repository\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar;D:\repo\smpRepository\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;D:\repo\smpRepository\repository\de\siegmar\logback-gelf\2.0.0\logback-gelf-2.0.0.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-starter-web\2.0.6.RELEASE\spring-boot-starter-web-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-starter-json\2.0.6.RELEASE\spring-boot-starter-json-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.7\jackson-datatype-jdk8-2.9.7.jar;D:\repo\smpRepository\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.7\jackson-module-parameter-names-2.9.7.jar;D:\repo\smpRepository\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.6.RELEASE\spring-boot-starter-tomcat-2.0.6.RELEASE.jar;D:\repo\smpRepository\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.34\tomcat-embed-core-8.5.34.jar;D:\repo\smpRepository\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.34\tomcat-embed-el-8.5.34.jar;D:\repo\smpRepository\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.34\tomcat-embed-websocket-8.5.34.jar;D:\repo\smpRepository\repository\org\hibernate\validator\hibernate-validator\6.0.13.Final\hibernate-validator-6.0.13.Final.jar;D:\repo\smpRepository\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\repo\smpRepository\repository\org\springframework\spring-web\5.0.10.RELEASE\spring-web-5.0.10.RELEASE.jar;D:\repo\smpRepository\repository\org\webjars\jquery\3.3.1\jquery-3.3.1.jar;D:\repo\smpRepository\repository\org\webjars\webjars-locator-core\0.35\webjars-locator-core-0.35.jar;D:\repo\smpRepository\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;D:\repo\smpRepository\repository\org\apache\commons\commons-lang3\3.7\commons-lang3-3.7.jar;D:\repo\smpRepository\repository\org\apache\commons\commons-compress\1.9\commons-compress-1.9.jar;D:\repo\smpRepository\repository\com\fasterxml\jackson\core\jackson-core\2.9.7\jackson-core-2.9.7.jar;D:\repo\smpRepository\repository\org\webjars\bootstrap\3.3.7\bootstrap-3.3.7.jar;D:\repo\smpRepository\repository\com\alibaba\fastjson\1.2.47\fastjson-1.2.47.jar;E:\Coding IdeaProjects\smp\smp-admin\libs\dom4j-1.6.1.jar;E:\Coding IdeaProjects\smp\smp-admin\libs\jaxen-1.1.6.jar;E:\Coding IdeaProjects\smp\smp-admin\libs\spring-boot-starter-thymeleaf-2.0.4.RELEASE.jar;D:\repo\smpRepository\repository\io\springfox\springfox-swagger2\2.7.

### Spring Boot Main 方法中连接数据库的示例 在 Spring Boot 中,可以通过 `DataSource` 对象来实现数据库连接。通常情况下,Spring Boot 的自动配置功能已经帮我们完成了大部分工作,只需要在 `application.properties` 或者 `application.yml` 文件中定义好数据库的相关参数即可。 以下是通过 Spring Boot 主方法(Main Method)获取并测试数据库连接的一个完整示例: #### 1. 配置文件设置 假设使用的是国产达梦数据库 (DM8),可以在 `application.yml` 文件中这样配置: ```yaml spring: datasource: url: jdbc:dm://localhost:5236/your_database_name username: your_username password: your_password driver-class-name: dm.jdbc.driver.DmDriver ``` 此部分配置用于指定数据库 URL、用户名、密码以及驱动程序名称[^4]。 --- #### 2. 添加 Maven 依赖项 为了支持 JDBC 和达梦数据库的操作,需确保项目中有如下依赖项: ```xml <dependency> <groupId>com.dameng</groupId> <artifactId>DmJdbcDriver</artifactId> <version>latest_version</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </version>${spring-boot.version}</version> </dependency> ``` 这些依赖分别提供了达梦数据库的 JDBC 驱动和支持 Spring Boot 自动化配置的功能[^3]。 --- #### 3. 编写 Main 方法代码 下面是一个完整的例子,展示如何在 Spring Boot 应用启动时直接从主方法调用数据库连接并执行简单查询: ```java package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import javax.sql.DataSource; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; @SpringBootApplication public class DemoApplication implements CommandLineRunner { @Autowired private DataSource dataSource; public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Override public void run(String... args) throws Exception { try (Connection connection = dataSource.getConnection()) { // 获取数据源连接对象 System.out.println("Connected to the database successfully!"); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT CURRENT_DATE"); while (resultSet.next()) { String currentDate = resultSet.getString(1); // 假设返回当前日期作为结果集的第一列 System.out.println("Current Date from Database: " + currentDate); } } catch (Exception e) { System.err.println("Error connecting to or querying the database."); e.printStackTrace(); } } } ``` 在此代码片段中,实现了以下几点: - 使用 `@SpringBootApplication` 注解标记应用入口类。 - 将 `CommandLineRunner` 接口引入到主类中以便于在应用程序启动完成后立即运行逻辑。 - 利用了 Spring 提供的 `DataSource` 来建立与数据库的实际链接,并尝试执行一条 SQL 查询语句验证连通性[^1]。 --- #### 注意事项 如果需要更复杂的事务管理,则应考虑启用事务注解 `@EnableTransactionManagement` 并合理选择合适的事务管理者实例,比如对于 JPA 可能会选择 `JpaTransactionManager` 而非默认的 `DataSourceTransactionManager`[^2]。 --- ###
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyJiang.2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值