我无法将spring应用程序与oracle db(12c)连接起来。我已在本地安装了jdbc8(java到oracle驱动程序)并安装了所有spring和jdbc依赖项。
任何人都可以帮助我。我无法运行应用程序(访问和更新数据库)。 maven build成功了,汇编成功了。
我遵循的步骤来运行应用程序: 1)打造maven清洁。 2)运行应用程序。 (不是在apache上)
****控制台日志: 使用javac 1.8.0_91编译的Oracle 12.2.0.1.0 JDBC 4.2 ***** JCE无限制的力量已经安装********
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)
);
答案 0 :(得分:1)
SpringJDBCTemplateExample主方法中的代码看起来正确&amp;如果所有参数都适合您的设置,应该可以工作,例如
true
所以如果你有一个带有SID或服务名称的Oracle数据库&#34; ORCL&#34;在1521的本地端口上收听,并且有一个&#34;系统&#34;用户密码&#34; Welcome1&#34;然后JdbcTemplate应该能够使用该DataSource进行连接。
如果连接失败,将抛出异常,您应该看到一个堆栈跟踪输出,它会告诉您哪里出错了。例如,如果密码错误,您应该看到类似的内容: -
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:ORCL");
dataSource.setUsername("system");
dataSource.setPassword("Welcome1");
现在......如果你正在运行你的SpringJDBCTemplateExample并且你没有看到你的程序的任何输出,那么我认为你有一些错误的日志设置或标准输出被重定向到某个地方。 / p>