java connection oracle 数据库java查询oracle数据库问题

扫一扫体验手机阅读
java JDBC访问Oracle数据库
<span type="1" blog_id="748307" userid='
61篇文章,13W+人气,0粉丝
高并发架构之路
¥51.0017人订阅
<span type="1" blog_id="748307" userid='博客访问: 60273
博文数量: 84
注册时间:
认证徽章:
分类: Java 17:00:18
一、故障现象
环境:CentOS release 6.8 (Final) &,java 1.7 &数据库oracle 11gR2 &写了一个简单的连接数据库的JDBC脚本,连接数据库,几十秒后出现connection reset错误:
[root@tomcat162 ~]# java -cp /tmp/javaclass/ojdbc14-10.2.0.4.0.jar:/tmp/javaclass/ & &ConnOracleJdbc&
start connection database
java.sql.SQLRecoverableException: IO Error: Connection reset
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:498)
at oracle.jdbc.driver.PhysicalConnection.&init&(PhysicalConnection.java:553)
at oracle.jdbc.driver.T4CConnection.&init&(T4CConnection.java:254)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:528)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at ConnOracleJdbc.testOracle(ConnOracleJdbc.java:30)
at ConnOracleJdbc.main(ConnOracleJdbc.java:12)
出现这个问题有如下几个特征:数据库负载不高,在其他机器的windows中能迅速连接上,在redhat系统中也能迅速连接上。
二、分析问题:在oracle的alert 日志出现如下错误
Fatal NI connect error 12170.
& VERSION INFORMATION:
TNS for Linux: Version 11.2.0.3.0 - Production
Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.3.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.3.0 - Production
& Time: 20-SEP-:49
& Tracing not turned on.
& Tns error struct:
& & ns main err code: 12535
TNS-12535: TNS:operation timed out
& & ns secondary err code: 12606
& & nt main err code: 0
& & nt secondary err code: 0
& & nt OS err code: 0
& Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.0.111)(PORT=62302))
WARNING: inbound connection timed out (ORA-3136)
Tue Sep 20 20:23:57 2016
三、进一步分析问题:oracle参数SQLNET.INBOUND_CONNECT_TIMEOUT设置为60秒,可以应付绝大部分情况。这里情况是在连接时候超出了60秒,所以alert.log打印上面日志。
四、问题解决:这个问题是java jdk 生成安全随机数的问题
vim /usr/local/jdk/jre/lib/security/java.security
securerandom.source=file:/dev/urandom
securerandom.source=file:/dev/./urandom
阅读(91) | 评论(0) | 转发(0) |
相关热门文章
学习Timer类,定制自己的调度...
给主人留下些什么吧!~~
请登录后评论。Java连接Oracle数据库并查询
转载 &更新时间:日 10:42:27 & 投稿:mrr
这篇文章主要介绍了Java连接Oracle数据库并查询的相关资料,需要的朋友可以参考下
下载ODBC Jar包驱动,网上百度下载或者去官网下载,导入到Eclipse 项目里面
public class DbConn {
private static String driver = "oracle.jdbc.driver.OracleDriver";
private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
private static String user = "root";
private static String password = "root";
private static Connection conn =
Class.forName(driver);
Log.logD("------加载驱动成功-----");
conn = (Connection) DriverManager.getConnection(url, user, password);
Log.logD("------连接成功-----");
} catch (ClassNotFoundException e) {
Log.logD("------加载驱动失败,驱动类未找到------");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
Log.logD("------加载驱动失败------");
public static Connection getConn(){
public class DbGetCan {
private static PreparedS
private static ResultS
private static C
public static String select(String sql) {
conn=DbConn.getConn();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
return getJsonArray();
} catch (SQLException e) {
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
* 将查询结果转化为json数组 需要导入Json jar包
public static String getJsonArray() throws SQLException, JSONException {
JSONArray jsonArray=new JSONArray();
ResultSetMetaData metaData = (ResultSetMetaData) rs.getMetaData();
int columnCount = metaData.getColumnCount();
while (rs.next()) {
JSONObject jsonData = new JSONObject();
for (int i = 1; i &= columnC i++) {
String columnName = metaData.getColumnLabel(i);
String value = rs.getString(columnName);
jsonData.put(columnName, value);
jsonArray.put(jsonData);
rs.close();
pstmt.close();
return jsonArray.toString();
String sql="select * from table";
String result=DbGetGps.select(sql);
System.out.println(result);
以上所述是小编给大家介绍的Java连接Oracle数据库并查询,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具用java连Oracle数据库,在Java中写了一条查询语句,怎么样才能在java中得查询语句的结果集啊_百度知道
用java连Oracle数据库,在Java中写了一条查询语句,怎么样才能在java中得查询语句的结果集啊
我有更好的答案
Class.forName(&oracle.jdbc.driver.OracleDriver);
String url=&jdbc:oracle:oci8:@数据库名&;
Connection con = DriverManager.getConnection(url,用户名,密码);
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery(&select * from 表名&);
while(rst.next())
rst.getString(&表字段&)
}catch(Exception e){
} finally{ //关闭连接、释放资源
rst.close();
stmt.close();
con.close();
采纳率:21%
为您推荐:
其他类似问题
您可能关注的内容
oracle数据库的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
package com.
import java.sql.Cimport java.sql.DriverMimport java.sql.ResultSimport java.sql.SQLEimport java.sql.S
public class JDBC_IMP {
private String dbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; private String theUser = "test"; private String thePw = "sa"; private Connection c = private S private ResultSet rs =
public void conJDBC() {
System.out.println("开始连接");
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
c = DriverManager.getConnection(dbUrl, theUser, thePw);
conn = c.createStatement();
System.out.println("连接正常----------");
} catch (Exception e) {
System.out.println("连接异常");
public boolean executeUpdate(String sql) {
conn.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
public ResultSet executeQuery(String sql) {
rs = conn.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
public void close() {
conn.close();
c.close();
} catch (Exception e) {
e.printStackTrace();
public void imp(String fileName) {
System.out.println("导入开始-----");
Process process = Runtime
.getRuntime()
@g:/ccc.sql commit on");
System.out.println("导入结束-----");
} catch (Exception e) {
System.out.println("导入异常-----");
public static void main(String[] args) {
JDBC_IMP conn = new JDBC_IMP();
conn.conJDBC();
rs = conn.executeQuery("select * from aaa");
while (rs.next()) {
System.out.println(rs.getInt(1) + "=====" + rs.getInt(2));
// 查询到的信息写入到本地sql文件
// 开始进行数据库导入操作
conn.imp("");
} catch (Exception e) {
e.printStackTrace();
} finally {
conn.close();
System.out.println("连接关闭");
浏览: 148498 次
来自: 北京
这个是在哪个包下面的啊,Maven Dependencies里 ...
为什么宽度为0的时候进度条不走呢
[b][color=brown][color=yellow]
想用一下,但是有点看不懂
非常有用,谢谢
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 oracleconnection 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信