- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我无法将 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/
我想在文件系统上手动创建文件夹/文件,以便在 eclipse 的工作区中创建新项目,并在启动 eclipse 并选择工作区时显示在项目资源管理器中。 执行此操作需要创建哪些文件,它们需要位于何处? 请
我正在关注these instructions ,但在运行 mvn eclipse:eclipse 等命令时遇到问题。 我应该如何以及在哪里运行该命令? 我的设置: Windows 7 32 位 面向
是否有任何命令可以在不实际启动 eclipse 的情况下创建 eclipse 工作区?我希望该命令成为脚本的一部分。创建工作区后,将对其进行配置(例如文本编码),然后用于将项目导入到 RTC。我知道下
我想为 Eclipse 插件创建一个自动安装程序(即不通过“更新管理器”)。我的场景很简单:用户关闭 Eclipse,将下载的 JAR 放入 dropins 文件夹,启动 Eclipse,其余的过程是
每当我们想要使用现有源位置创建 Eclipse 项目时,我们将选择现有源位置(根)作为项目位置。 Eclipse 将在该源的根目录中创建所有项目特定文件。 现在,出于某种原因,如果我们想用不同的设置重
可能被问过多次; 有没有办法从控制台(Linux 或 Windows)刷新 Eclipse 工作区文件夹。 我知道有 Ant 任务可以做到这一点。但很想知道是否有命令行技巧。 最佳答案 不,您能做的最
我说的是工具栏上的小图标。 网络上似乎没有任何这样的问题,它们都指的是 android 或自定义应用程序,而不是与 eclipse 捆绑在一起的图标。 我想知道是否有人尝试过这个,或者可以告诉我它不值
如何使用 Eclipse 比较两个文件? (目前我正在使用 WinMerge 。) 最佳答案 要在 Eclipse 中比较两个文件,请首先在 Project Explorer/Package Expl
我正在尝试将我在一个带有数据库的 Eclipse JEE6 项目中所做的所有工作转移到另一个 Eclipse 程序。我知道我将不得不重新配置很多并重建很多库文件,但是尽可能多地传输的最简单方法是什么?
在 Eclipse 中加载我的工作台并启用 TFS 插件时,它挂起。与此类似: http://social.msdn.microsoft.com/Forums/vstudio/en-US/85c1d3
Eclipse 可以通过插件包含许多不同的功能集。您是否在一个 Eclipse 中安装所有插件?或者您是否从 spring 安装 STS,从 adobe 安装 Flex eclipse,甚至从 ecl
我错误地单击了“在 Eclipse 首选项中将目标运行标记为忽略在 Eclipse 构建中(实验)”: 在哪里/如何撤消此操作? 最佳答案 m2e 使用文件 YOUR_WORKSPACE/.metad
我是 Maven 新手。我尝试执行 >mvn eclipse:eclipse -Dwtpversion=2.0。但我收到以下错误: D:\test\CounterWebApp>mvn eclips
当我运行多个 Eclipse 实例时,操作系统不断请求上述权限。 我已经授予了该权限,并且我尝试了多次禁用和启用该权限。 我正在使用, macOS Catalina(版本:10.15.3 (19D76
我有一个 Maven 项目,其中我在项目构建期间使用 wsimport 作为目标来使用 Web 服务。 org.codehaus.mojo
当尝试使用 eclipse 新软件功能安装 eclipse 时,出现此错误: Cannot complete the install because one or more required item
我已经下载了整个 Eclipse Helios/Indigo 版本的源代码。现在我想对它进行一些修改等等。所以我导入了整个源代码,但现在我在编译时遇到了 n 个错误。此外,我正在尝试 RunAs> 插
我已经安装了 eclipse Oxygen 并且正在尝试连接到 Eclipse 市场,以安装插件,它给出了以下异常 - org.eclipse.equinox.p2.core.ProvisionExc
我的 IDE 中安装了来自 Sonatype 的 m2Eclipse 插件。它允许我通过右键单击 pom.xml 文件并导航到“运行方式”菜单来运行各种 Maven 命令(打包、安装等)。 但是,我还
我在 Windows7 64 位上运行 Maven 3 时遇到问题。当我执行maven eclipse:eclipse(我使用maven-eclipse-plugin 2.8)时,maven不会创建任
我是一名优秀的程序员,十分优秀!