gpt4 book ai didi

database - 如何使用 eclipse IDE 将 Spring 连接到 Oracle 数据库。

转载 作者:搜寻专家 更新时间:2023-10-30 23:35:41 25 4
gpt4 key购买 nike

我无法将 spring 应用程序与 oracle db (12c) 连接。我已经在本地安装了 jdbc8(java 到 oracle 驱动程序)并安装了所有 spring 和 jdbc 依赖项。

谁能帮帮我。我无法运行该应用程序(访问和更新数据库)。 maven构建成功,编译成功。

我运行应用程序所遵循的步骤:1)构建为maven clean。2) 运行应用程序。 (不在 Apache 上)

****控制台日志:Oracle 12.2.0.1.0 JDBC 4.2 使用 javac 1.8.0_91 编译***** JCE UNLIMITED STRENGTH 已安装 ********

contact.java 代码

package net.codejava.spring;

/**
*
* @author www.codejava.net
*
*/
public class Contact {
private String name;
private String email;
private String address;
private String phone;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public String getPhone() {
return phone;
}

public void setPhone(String telephone) {
this.phone = telephone;
}

public String toString() {
return String.format("[%s - %s - %s - %s]", name, email, address, phone);
}

SpringJDBCTemplateExmaple.java 代码

    package net.codejava.spring;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.SimpleDriverDataSource;

/**
* This console application demonstrates how to do CRUD operations using JDBC
* with Spring framework.
* @author www.codejava.net
*
*/
public class SpringJDBCTemplateExample {

public static void main(String[] args) throws SQLException {
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
dataSource.setDriver(new oracle.jdbc.OracleDriver());
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:ORCL");
dataSource.setUsername("system");
dataSource.setPassword("Welcome1");

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

String sqlInsert = "INSERT INTO contact (name, email, address, telephone)"
+ " VALUES (?, ?, ?, ?)";
jdbcTemplate.update(sqlInsert, "Tom", "tomea@mail.com", "USA", "12345");

String sqlUpdate = "UPDATE contact set email=? where name=?";
jdbcTemplate.update(sqlUpdate, "tomee@mail.com", "Tom");

String sqlSelect = "SELECT * FROM contact";
List<Contact> listContact = jdbcTemplate.query(sqlSelect, new RowMapper<Contact>() {

public Contact mapRow(ResultSet result, int rowNum) throws SQLException {
Contact contact = new Contact();
contact.setName(result.getString("name"));
contact.setEmail(result.getString("email"));
contact.setAddress(result.getString("address"));
contact.setPhone(result.getString("telephone"));

return contact;
}

});

for (Contact aContact : listContact) {
System.out.println(aContact);
}

String sqlDelete = "DELETE FROM contact1 where name=?";
jdbcTemplate.update(sqlDelete, "Tom");
}

pom.xml 的代码

       <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.codejava.spring</groupId>
<artifactId>SpringJDBCTemplateExample</artifactId>
<version>1.0</version>
<name>SpringJDBCTemplateExample</name>

<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.1.0.1</version>
</dependency>
</dependencies>

联系表:

         CREATE TABLE contact (
contact_id integer NOT NULL,
name varchar(45) NOT NULL,
email varchar(45) NOT NULL,
address varchar(45) NOT NULL,
telephone varchar(45) NOT NULL,
CONSTRAINT contact_pk PRIMARY KEY (contact_id)
);

最佳答案

您的 SpringJDBCTemplateExample main 方法中的代码看起来是正确的并且应该可以工作,前提是所有参数对于您的设置都是正确的,例如

dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:ORCL");
dataSource.setUsername("system");
dataSource.setPassword("Welcome1");

因此,如果您确实有一个 SID 或服务名称为“ORCL”的 Oracle 数据库在本地端口 1521 上监听,并且有一个密码为“Welcome1”的“系统”用户,那么 JdbcTemplate 应该能够使用该数据源来连接。

如果连接失败,将抛出一个异常,您应该会看到一个堆栈跟踪输出,它会告诉您哪里出了问题。例如,如果密码错误,您应该看到如下内容:-

Exception in thread "main" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: ORA-01017: invalid username/password; logon denied
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:630)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:909)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:970)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:980)
...
Caused by: java.sql.SQLException: ORA-01017: invalid username/password; logon denied

现在 ... 如果您正在运行 SpringJDBCTemplateExample 并且您没有看到程序的任何输出,那么我会认为您的日志记录设置有问题或者标准输出被重定向到某处。

关于database - 如何使用 eclipse IDE 将 Spring 连接到 Oracle 数据库。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42871303/

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