Java Web应用与Oracle连接问题一例
Java连接Oracle数据库实例解析
Java连接Oracle数据库实例解析
数据库的操作是当前系统开发必不可少的开发部分之⼀,尤其是在现在的⼤数据时代,数据库尤为重要。但是你真的懂得Java与数据库是怎么连接的么?
先给⼤家⼀个数据库连接的简单实例:
package com.java.dbtest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestConnection implements DBTest{
public void SelectUser(){
//设定数据库驱动,数据库连接地址、端⼝、名称,⽤户名,密码
String driverName="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@localhost:1521:BJPOWERNODE"; //test为数据库名称,1521为连接数据库的默认端⼝
String user="system"; //aa为⽤户名
String password="bjpowernode"; //123为密码
PreparedStatement pstmt = null;
ResultSet rs = null;
//数据库连接对象
Connection conn = null;
java 连oracle方法
java 连oracle方法
在Java中连接Oracle数据库通常使用JDBC(Java Database Connectivity)来实现。首先,你需要确保已经安装了Oracle数据库,并且已经设置了数据库的连接信息,包括主机名、端口号、数据库名称、用户名和密码。接下来,你需要下载并安装Oracle提供的JDBC驱动程序,然后在Java程序中引入该驱动程序。
在Java代码中,你可以使用以下步骤来连接Oracle数据库:
1. 加载并注册JDBC驱动程序,使用Class.forName()方法加载并注册Oracle JDBC驱动程序,例如,
Class.forName("oracle.jdbc.driver.OracleDriver")。
2. 建立数据库连接,使用DriverManager.getConnection()方法建立与Oracle数据库的连接,传入数据库连接URL、用户名和密码,例如,Connection connection =
DriverManager.getConnection("jdbc:oracle:thin:@localhost:15 21:ORCL", "username", "password")。
3. 执行SQL查询或更新,一旦建立了数据库连接,你就可以使
用Connection对象创建Statement或PreparedStatement来执行SQL查询或更新操作,例如,Statement statement = connection.createStatement()。
java oracle connection isvalid 返回false
java oracle connection isvalid 返回false
如果在使用Java连接Oracle数据库时,调用Connection.isValid()方法返回false,可能有以下几个原因:
1.连接已关闭:确保在调用isValid()方法之前,数据库连接没有被关闭。
2.连接超时:连接可能由于闲置时间过长而被数据库服务器断开。可以尝试设置连接
池的参数,如idleTimeout,来保持连接的活跃状态。
3.网络问题:检查网络连接是否正常。如果数据库服务器无法从Java应用程序所在的
机器访问,那么连接可能会被视为无效。
4.数据库服务器问题:如果Oracle数据库服务器出现问题,比如重启或者宕机,那么
现有的连接可能会被视为无效。
5.JDBC驱动问题:确保你使用的JDBC驱动与Oracle数据库版本兼容。有时候,驱
动的问题可能会导致isValid()方法返回不正确的结果。
6.配置问题:检查连接字符串(URL)、用户名、密码等配置信息是否正确。
7.防火墙或安全设置:防火墙或安全软件可能阻止了Java应用程序与数据库服务器之
间的通信。
8.Oracle服务未运行:确保Oracle服务正在运行,并且监听器(Listener)也已启动。
为了解决这个问题,你可以尝试以下步骤:
•确认数据库服务器的状态和网络连通性。
•检查JDBC驱动的版本和兼容性。
•如果使用了连接池,请检查连接池的配置,特别是与超时和验证连接有效性相关的设置。
•查看Oracle数据库的日志,以获取可能的错误信息或警告。
•尝试使用不同的工具或方法(如SQL*Plus)来验证数据库连接是否正常。
JAVA连接ORACLE数据库步骤
JAVA连接ORACLE数据库步骤
Java是一种跨平台的编程语言,可以用于连接和操作各种类型的数
据库,包括Oracle数据库。连接Oracle数据库的步骤如下:
3. 加载驱动:在Java程序中加载Oracle数据库的驱动程序。可以使用Class.forName(方法来加载驱动,如下所示:
```
Class.forName("oracle.jdbc.OracleDriver");
```
4. 创建连接:使用DriverManager类中的getConnection(方法创建与Oracle数据库的连接。在连接方法中,需要传递数据库的URL、用户
名和密码等参数。例如:
```
String username = "your-username";
String password = "your-password";
Connection conn = DriverManager.getConnection(url, username, password);
```
5. 执行SQL语句:通过创建的连接对象,可以执行各种SQL语句来对数据库进行操作。可以使用Statement或PreparedStatement对象来执行SQL语句。例如,查询所有的表格:
```
Statement stmt = conn.createStatement(;
ResultSet rs = stmt.executeQuery("SELECT * FROM ALL_TABLES");
while (rs.next()
String tableName = rs.getString("TABLE_NAME");
java oracle面试题
java oracle面试题
1. 介绍Java和Oracle
Java是一种高级编程语言,具有面向对象的特性,可用于开发各
种应用程序和平台。Oracle是一种关系型数据库管理系统,被广泛用
于数据存储和管理。Java和Oracle常常被同时使用,因为Java提供了
与Oracle数据库进行交互的强大工具和API。
2. Java面试题
2.1 什么是Java?
Java是一种面向对象的编程语言,具有跨平台的特性。它由Sun Microsystems(现在是Oracle)开发,可用于开发Web应用、桌面应用、移动应用和嵌入式应用。
2.2 Java的主要特点有哪些?
- 简单易学:Java的语法类似于C++,但是去除了一些复杂和不
安全的特性,使得Java更易于学习和使用。
- 面向对象:Java支持面向对象的编程范式,提供类、继承、封装、多态等特性。
- 跨平台性:Java程序可以在不同平台上运行,只需在目标平台上安装Java虚拟机(JVM)。
- 安全性:Java提供了多种安全机制,如内存管理和异常处理,以及安全类库和安全管理器。
- 大型库支持:Java拥有庞大的开发者社区和丰富的类库,可用于快速开发各种应用。
2.3 什么是Java虚拟机(JVM)?
Java虚拟机是Java程序运行的环境。它负责将Java字节码翻译成机器码,并提供内存管理和垃圾回收、安全管理、线程管理等功能。
2.4 Java的基本数据类型有哪些?
Java的基本数据类型包括:整数类型(byte、short、int、long)、浮点数类型(float、double)、字符类型(char)、布尔类型(boolean)。
Oracle与java连接方法
一次连接数据库怎么也连接不上,查了多方面资料,终于找到答案,总结
首先应该保证数据库的服务启动
在myeclipse的数据库视图中点右键->new 弹出database driver的窗口,
Driver template选择oracle(thin driver),
Driver name 输入oracle
connection URL=jdbc:oracle:thin:@localhost:1521:oracle 注意localhost:1521:oracle中的oracle 是数据库得sid 换成你自己数据库的sid 就可以
username:登陆数据库具有system权限的用户名
password:登陆数据库具有system权限的密码
点击add jar 选择ojdbc14.jar的存放位置,没有得可以到百度下一个叫ojdbc14.jar的文件。点击test driver 到此成功配置。
关于启动数据库后提示ora-12505的解决方法:
"listener does not currently know of SID given in connect descriptor "
第一种可能
是配置得数据库sid 名不正确localhost:1521:oracle 即红字部分不是你本机得sid ,那么如何查看本机得sid 呢?
用如下命令SELECT NAME FROM v$database ;应该是以sysdba的身份进行的操作,在sqlplus中执行就可以看到,把红字部分换成查询出来的sid 就可以。
Java与Oracle9i数据库的JDBC连接方法解析
( “ j d b c : o r a c l e : t h i n : @ m y h o s t : 1 5 2 1 : O R C L ”,“ S t u d ”,“ l i u l i ”) ;
Y R&D
J a v a 与Or a c l e 9 i 数据库 /  ̄ J DB C 连接方法解析
刘 俊姝 ( 大庆 油 田公 司第 一采 油厂 第二 油矿 。 黑龙 江 大庆 1 6 3 2 5 7)
摘 要 随着 I n t e r n e t 的广泛发展 ,J a v a的面向对象、平台无关及模块分布应用等特点 , 给 网络编程界 带来了新的 革命 。0 r a c l e 9 i 数据库相应 同时发展为应用服务器与数据库服务器。企业体 系发展为多个应用对 象具有 良好的定义接 口, 从瘦客端上访 问服务器上信息和应用更为方便。J a v a与 O r a c l e 9 i 数据 库的连接体现有三个方面 , 本篇重点解析 J a v a 与0 r a c l e 9 i 数据 库的 J D B C 连接方法 , 展示 J D B C是基 于 S Q L的类 似 O D B C的 J a v a 数 据库 连接 的一 个规 范。
/ / 查 询学 员 姓名
S t a t e m e n t s t mt = c o n n . c r e a t e S t a t e m e n t 0 ; R e s u l t S e t r s e t - s t m t . e x e c u t e Q u e r y (“ S E L E C T s n a me F O R M
java连接oracle数据库方法及测试[精华]
package com.java.dba;
import java.sql.*;
public class Bc {
// 声明数据库地址及驱动
private Connection conn = null;
private String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
private String driver = "oracle.jdbc.driver.OracleDriver";
private String user = "www";
private String password = "www";
// 主函数
public static void main(String[] args) {
Bc bc = new Bc();
String sql="select * from T_USERS";
String sql1 = "insert into T_USERS values ('rrr','ooo')";
String sql2 ="update T_USERS set USERSPASSWORD = '888888888884444' where USERSNAME= 'www'";
ResultSet rs= bc.select(sql);
bc.execute(sql1);
bc.execute(sql2);
try{
//显示查询出来的结果------------------
ResultSetMetaData rmeta = rs.getMetaData();
oraclejava面试题及答案
oraclejava面试题及答案
Oracle Java 面试题及答案
1. 什么是Java虚拟机(JVM)?
答:Java虚拟机(JVM)是一个可以执行Java字节码的虚拟计算机。它是一个抽象的计算机,通过在实际的计算机上通过软件或硬件来实现。JVM提供了内存管理、垃圾回收和安全性等功能,使得Java能够
实现“一次编写,到处运行”的特性。
2. Java有哪些基本的数据类型?
答:Java有8种基本数据类型,分别是:
- 4种整型:byte(8位有符号整数)、short(16位有符号整数)、int(32位有符号整数)、long(64位有符号整数)。long类型后面
通常跟一个'L'或'l'。
- 2种浮点型:float(32位单精度浮点数)、double(64位双精
度浮点数)。double类型后面通常跟一个'D'或'd'。
- 1种字符型:char(16位Unicode字符)。
- 1种布尔型:boolean。
3. 什么是Java集合框架?
答:Java集合框架是Java中一组接口和类,用于存储和操作一组
对象。它提供了一种统一的方式来处理对象集合,包括List、Set、Map等接口,以及它们的实现类ArrayList、HashSet、HashMap等。
4. 什么是多线程?Java中如何实现多线程?
答:多线程是指一个程序中可以同时执行多个线程(任务)。Java
中实现多线程有两种主要方式:
- 继承Thread类并重写其run方法。
- 实现Runnable接口并实现其run方法,然后将Runnable实例传
java通过配置文件(Properties类)连接Oracle数据库代码示例
java通过配置⽂件(Properties类)连接Oracle数据库代码⽰例 1import java.io.FileInputStream;
2import java.io.IOException;
3import java.io.InputStream;
4import java.sql.Connection;
5import java.sql.DriverManager;
6import java.sql.ResultSet;
7import java.sql.SQLException;
8import java.sql.Statement;
9import java.util.Properties;
10
11public class JdbcDemo {
12//创建对象关联配置⽂件
13private Properties pro = new Properties();
14private String driver;
15private String url;
16private String user;
17private String psw;
18
19public JdbcDemo(){
20try {
21//通过反射获取数据流
22 pro.load(this.getClass().getResourceAsStream("MyOrcDb.properties"));
23//获取配置⽂件数据
24this.setDriver(pro.getProperty("driver"));
25this.setUrl(pro.getProperty("url"));
泛微e-cology和Oracle无法启动的解决方案
泛微e-cology和Oracle⽆法启动的解决⽅案
最近公司的泛微OA⽆法访问,Oracle数据库也⽆法正常启动,尝试了好多⽅法,终于解决了,先说说基本情况,希望能给碰到同样问题的朋友带来⼀点帮助。
服务器操作系统:Window s Server 2016 Datacenter
泛微OA版本: e-cology V8.0,安装⽬录为D:\WEAVER……
Oracle版本:Oracle 11g,安装⽬录为D:\app\adminitartor\……
泛微OA⽆法启动,我们⾸先会想到查看启动⽇志,D:\WEAVER\ecology\log报错如下,
2017-12-13 07:38:44,217 ERROR weaver.conn.DBConnectionPool-weaver.conn.DBConnectionPool
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
jfinal连接oracle详解
jfinal连接oracle详解
JFinal是一款基于Java语言的轻量级Java Web开发框架,它简化了开发过程并提供了丰富的功能和插件。在JFinal中连接Oracle 数据库是一项常见的任务,本文将详细介绍如何使用JFinal连接Oracle数据库。
在开始之前,我们需要确保已经安装了Java JDK和Oracle数据库,并配置好相应的环境变量。接下来,我们将按照以下步骤进行操作:
第一步,导入JFinal和Oracle数据库的依赖包。在项目的pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>3.8</version>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
```
第二步,配置数据库连接信息。在项目的配置文件中,一般是在`src/main/resources`目录下的`config.properties`文件中,添加以下配置信息:
实例代码讲解Java连接Oracle数据库的各种方法
JA V A与Oracle的接口:
在数据库中运行JA V A可以说是ORACLE8i的最令人激动的新特性。在你创建的使用ORACLE8i 数据库的应用程序中,你可以使用与JA V A有关的新特征,轻松的将程序发布到INTERNET或INTRANET上。
Methods for Using Java in ORACLE
大家都知道JA V A在跨平台开发与INTERNET开发中已经比较流行,ORACLE8i及以后的版本中都包含了对在数据库中运行JA V A的扩展支持,这里有两种方法可以使用:
JDBC:与ODBC类似, JDBC 提供了一个驱动接口使你可以在JA V A程序中访问数据库。注:JDBC驱动内嵌在数据库中虚拟机中。
SQLJ:是一个JA V A预编译器,它可以将内嵌的SQL语句转化为JA V A语句.SQLJ的使用与运行机理与其它ORACLE的与编译器(如Pro*C,Pro*COBOL)类似。实际上,为了使我们形象的记住SQLJ提供的功能,我们也可以直接将SQLJ改名为Pro*Java。
将JA V A集成到数据库中是双向的。也就是说你可以在JA V A中调用SQL与PL/SQL,也可以在SQL与PL/SQL中调用JA V A。JA V A程序可以直接通过JDBC驱动调用SQL与PL/SQL,反过来,你也可以在SQL与PL/SQL中直接调用JA V A。在数据库中,JA V A命名空间直接映射到数据库模式的命名空间中,这样可以方便JA V A的存取与调用。数据库同时提供扩展的DDL语句,通过这些语句,你可以象创建一个存储过程一样在数据中创建内嵌的JA V A程序。
JAVA 利用JDBC 连接ORACLE数据库的问题与原代码(注释)
dbconn = new DBConnection(); } dbconn.closeConnection(conn); }
/** * 实例化调用 * @throws SQLException * */ public static void main(String[] arg) throws SQLException{
Class.forName(db_Driver);// 加载Oracle驱动程序 //通过DriverManager的getConnection()方法获取数据库的连 接 conn = DriverManager.getConnection(db_url, db_username, db_password); }catch(Exception e){ e.printStackTrace(); } return conn; }
查看数据:select_Sql = “select * from table”; Resultset rs = stmt.excuteQuery(select_Sql);
pstmt = conn.preparedStatement(select_Sql); Resultset rs = pstmt.excuteQuery();
* 获取数据库连接 * @return */ public Connection getConnection(){
//声明Connection连接对象 Connection conn = null; try{
Java Web应用与Oracle连接问题一例
Java Web应用与Oracle连接问题
1.概况
刚安装的Java Web应用连接不到数据库,初步判断是数据库连接字符串没有正确配置。通常在Tomcat中可以通过配置WEB-INF下的web.xml或者applicationContext.xml文件来修改数据库连接字符串。
后询问高手,在Tomcat自身路径下也有配置文件:
%TOMCAT%\conf\Catalina\localhost\%APPNAME%.xml
修改数据库连接字符串中的IP和SID
2.探索
使用WireShark侦听网络传输内容,对比PL/SQL和JDBC连接不同。
2.1.PL/SQL Dev传送的连接字符串
2.2.JDBC传送的连接字符串
错误提示如下
基本判定是连接字符串中的SID和ServiceName导致的差异。
查询了相关资料,猜测可能是ojdbc14.jar的版本导致的问题,程序中的版本为"10.2.0.3.0",相对较新,不存在问题。
3.SID和ServiceName
转而以“数据库连接字符串”为关键字查询资料
参考:/gladfeel/blog/item/739a82ee0cbbb4092cf534f0.html
JDBC Thin Driver的格式有三种格式:
3.1.格式一:ServiceName:
jdbc:oracle:thin:@//:/
Example:jdbc:oracle:thin:@//192.168.115.1:1521/db
注意这里的格式,@后面有//,这是与使用SID的主要区别。
这种格式是Oracle推荐的格式,因为对于集群来说,每个节点的SID是不一样的,但是SERVICE_NAME确可以包含所有节点。
java oracle面试题及答案
java oracle面试题及答案
Java和Oracle是目前IT行业中非常热门的技术,因此在求职过程中,对Java和Oracle的知识掌握成为了面试的重要考察点。下面将介绍一些常见的Java Oracle面试题及其答案,希望能够帮助你更好地准备面试。
1. 什么是Java?
Java是一种面向对象编程语言,由Sun Microsystems(现在是Oracle)在1995年推出。它允许开发人员编写一次,随处运行,在不同的平台上开发和部署应用程序。Java具有简单、可移植、安全和高性能等特点。
2. 请解释一下Java中的封装是什么?
封装是Java中面向对象编程的重要概念之一。它指的是将数据和对数据的操作封装在一起,形成一个类。通过封装,可以提高数据的安全性和可维护性,同时也方便了代码的重用。
3. 请解释一下Java中的多态是什么?
多态是指同一个方法可以根据调用的不同对象产生不同的行为。在Java中,实现多态的方式有两种:方法重载和方法重写。方法重载指的是在一个类中定义多个同名的方法,但参数类型或个数不同,以便根据不同的参数选择正确的方法调用。方法重写指的是在子类中重新定义父类中已经存在的方法,以便根据不同的对象选择正确的方法调用。
4. 请解释一下什么是Java中的异常?
异常是在程序运行过程中可能出现的错误或异常情况。在Java中,异常分为两种类型:已检查异常(Checked Exception)和未检查异常(Unchecked Exception)。已检查异常通常由外部条件引起,例如文件不存在、网络连接中断等。未检查异常通常由程序自身的错误引起,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java Web应用与Oracle连接问题
1.概况
刚安装的Java Web应用连接不到数据库,初步判断是数据库连接字符串没有正确配置。通常在Tomcat中可以通过配置WEB-INF下的web.xml或者applicationContext.xml文件来修改数据库连接字符串。
后询问高手,在Tomcat自身路径下也有配置文件:
%TOMCAT%\conf\Catalina\localhost\%APPNAME%.xml
修改数据库连接字符串中的IP和SID
workDir="work/Catalina/localhost/LogisticCall"> auth="Container" description="SqlServer Datasource " name="jdbc/logisticcallsource" type="javax.sql.DataSource" password="135246" driverClassName="oracle.jdbc.driver.OracleDriver" maxIdle="2" maxWait="5000" username="orclfl" url="jdbc:oracle:thin:@10.96.149.65:1521:dlwl" maxActive="4"/>
刷新页面,仍然报错无法连接:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
10.96.149.65:1521:DLWL
)
2.探索
使用WireShark侦听网络传输内容,对比PL/SQL和JDBC连接不同。
2.1.PL/SQL Dev传送的连接字符串
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.96.149.66)(PORT=1521))(LO AD_BALANCE=yes)(CONNECT_DA TA=(SERVER=DEDICATED)(SERVICE_NAME=dlwl)(F AILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5))
(CID=(PROGRAM=E:\apps\PLSQL Developer 9.0.0.1601\plsqldev.exe)
(HOST=PC-XK)(USER=Administrator))(INSTANCE_NAME=dlwl1)))
2.2.JDBC传送的连接字符串
(DESCRIPTION=(CONNECT_DATA=(SID=DLWL)(CID=(PROGRAM=)(HOST=__jdbc__)( USER=)))(ADDRESS=(PROTOCOL=tcp)(HOST=10.96.149.65)(PORT=1521)))
错误提示如下
(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12505)(ERROR_STACK=(ERROR =(CODE=12505)(EMFI=4))))
基本判定是连接字符串中的SID和ServiceName导致的差异。
查询了相关资料,猜测可能是ojdbc14.jar的版本导致的问题,程序中的版本为"10.2.0.3.0",相对较新,不存在问题。
3.SID和ServiceName
转而以“数据库连接字符串”为关键字查询资料
参考:/gladfeel/blog/item/739a82ee0cbbb4092cf534f0.html
JDBC Thin Driver 的格式有三种格式:
3.1.格式一: ServiceName:
jdbc:oracle:thin:@//
Example: jdbc:oracle:thin:@//192.168.115.1:1521/db
注意这里的格式,@后面有//, 这是与使用SID的主要区别。
这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 确可以包含所有节点。
3.2.格式二: SID:
jdbc:oracle:thin:@
Example: jdbc:oracle:thin:192.168.112.1:1521:XXX
Note: Support for SID is being phased out. Oracle recommends that users switch over to usingservice names.
3.3.格式三:TNSName:
jdbc:oracle:thin:@
Example: jdbc:oracle:thin:@tns_a
Note:
Support for TNSNames was added in the driver release 10.2.0.1
4.解决
修改配置中的数据库连接字符串为url="jdbc:oracle:thin:@//10.96.149.65:1521/dlwl"
问题解决。