最近接触oracle有点多,同时也在配置数据库连接池,坑也就踩多了,记录下。

  事情还没有结束,没时间记录问题,很多事情都忘了,过了国庆再写的话可能就真的全忘了吧……而且不单单是数据库问题,还有一些数据库连接池等等的问题。

  先写有关数据库的吧。

一、Navicat连接远端oracle需要配置合适的驱动

  我用Navicat的时候还用的是plsql,连plsql并没有踩什么坑(或者是我自己忘了),所以连接oracle的时候并没有做特殊的配置,然后每次一连接就闪退,我只当是自己填错账号密码没有深究。然后后面查了查教程,需要配置oci。

  先确认你想要连接的oracle的版本,再下载版本对应的驱动

  然后进入Navicat中,选择工具-选项-环境,然后设置oci环境如下,选择自己下载的驱动下面的oci.dll,然后重启Navicat就可以生效了

  

  同时,如果没有配置好oci环境也会报“navicat is not able to create OCI handles”的错误。

二、java.sql.SQLException: 未调用 ResultSet.next

  这种情况,即使你使用java程序查询oracle程序时返回的只有一条数据,也必须使用result.next(),譬如:

if(result.next()){
int count = result.getInt(1);
}

三、查询某个表格是否存在

  我需要使用的是java确定远端oracle中是否有我需要的那张表格存在,有就继续后续的查询操作。根据https://blog.csdn.net/lmb55/article/details/54837719所给的方案得到了解决。

  主要有两个思考方向,一是s可用的sql语句。我在网上查到了很多说法,知道数据库中是有一张表格保存了数据库中所有表的信息,比如表名、拥有者等信息的,但是他们所给的表在我所连接的数据库中都是空表,可能不同的数据库设置问题导致表格也不同,而且也需要确定你的账号有没有访问这张表格的权限。

  我最终找到了结果(注意表名和拥有者作为查询的字符串条件时是区分大小写的,我一开始就因为这个原因屡次出问题):

  

select * from all_tables WHERE upper(OWNER) LIKE '表的拥有者的大写' AND upper(TABLE_NAME) LIKE '表名的大写';

  第二个方法是别人提供的java方法,但是我这里返回结果是不对的,一直是不存在:

ResultSet rs = con.getMetaData().getTables(null, null, tableName, null);
if (rs.next()) {
return true;
}else {
return false;
}

java连数据库和数据库连接池踩坑日记(一)-------oracle连接的一些问题的更多相关文章

  1. java连数据库和数据库连接池踩坑日记(二)-------数据库连接池c3p0

    关于数据库连接池,我觉得有些沮丧,因为最后被毙掉了说不用考虑多线程的问题…… 数据库连接池的推荐:https://www.cnblogs.com/nuccch/p/8120349.html 我最终选择 ...

  2. JAVA和C#中数据库连接池原理与应用

    JAVA和C#中数据库连接池原理 在现在的互联网发展中,高并发成为了主流,而最关键的部分就是对数据库操作和访问,在现在的互联网发展中,ORM框架曾出不穷, 比如:.Net-Core的EFCore.Sq ...

  3. AI相关 TensorFlow -卷积神经网络 踩坑日记之一

    上次写完粗浅的BP算法 介绍 本来应该继续把 卷积神经网络算法写一下的 但是最近一直在踩 TensorFlow的坑.所以就先跳过算法介绍直接来应用场景,原谅我吧. TensorFlow 介绍 TF是g ...

  4. 人工智能(AI)库TensorFlow 踩坑日记之一

    上次写完粗浅的BP算法 介绍 本来应该继续把 卷积神经网络算法写一下的 但是最近一直在踩 TensorFlow的坑.所以就先跳过算法介绍直接来应用场景,原谅我吧. TensorFlow 介绍 TF是g ...

  5. hexo博客谷歌百度收录踩坑日记

    title: hexo博客谷歌百度收录踩坑日记 toc: false date: 2018-04-17 00:09:38 百度收录文件验证 无论怎么把渲染关掉或者render_skip都说我的格式错误 ...

  6. Hexo搭建静态博客踩坑日记(二)

    前言 Hexo搭建静态博客踩坑日记(一), 我们说到利用Hexo快速搭建静态博客. 这节我们就来说一下主题的问题与主题的基本修改操作. 起步 chrome github hexo git node.j ...

  7. Hexo搭建静态博客踩坑日记(一)

    前言 博客折腾一次就好, 找一个适合自己的博客平台, 专注于内容进行提升. 方式一: 自己买服务器, 域名, 写前端, 后端(前后分离最折腾, 不分离还好一点)... 方式二: 利用Hexo, Hug ...

  8. 【Java进阶】——初识数据库连接池

    [简介] 数据库连接池:程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的链接进行申请,使用,释放. 相比之前的程序连接,减少了数据库的打开关闭次数,从而减少了程序响应的 ...

  9. java 利用c3p0管理数据库连接池

    数据库连接池类,用于获取数据库连接.利用单例模式保证所有的连接都只通过一个连接池管理. package com.mousewheel.dbcon; import java.io.InputStream ...

随机推荐

  1. Python之模型的保存和加载-5.3

    一.模型的保存,主要是我们在训练完成的时候把训练下来的数据保存下来,这个也就是我们后续需要使用的模型算法.模型的加载,在保存好的模型上面我们通过原生保存好的模型,去计算新的数据,这样不用每次都要去训练 ...

  2. (三) Docker 常用操作与CentOS7 防火墙命令

    参考并感谢 Docker 常用命令 https://docs.docker.com/engine/reference/commandline/docker/ Docker 登录docker账户 doc ...

  3. Window 使用Nginx 部署 Vue 并把nginx设为windows服务开机自动启动

    1.编译打包Vue项目 在终端输入 npm run build 进行打包编译.等待... 打包完成生成dist文件夹,这就是打包完成的文件. 我们先放着,进行下一步. 2下载Nginx 下载地址: h ...

  4. it commit提示Your branch is up-to-date with 'origin/master'.

    今天提交git仓库的时候,遇到了如截图所示的问题,提示Your branch is up-to-date with 'origin/master'. 查了些资料后,发现其根本原因是版本分支的问题 这时 ...

  5. src属性与浏览器渲染

    img标签 只要设置了src属性, 就会开始下载,因此可以使用这个特性,配合display:none,默默的下载一些图片,用的时候直接用,快了那么一丢丢~ 注意:不一定要添加到文档后才会开始下载,是只 ...

  6. webpack---eslint-loader学习随笔

    第一步.在项目内安装: npm i -D eslint eslint-loader . 第二步.webpack的配置loader 注意loader的顺序,需先执行eslint-loader. 第三步. ...

  7. Oracle数据库的视图

    使用视图的优点:    1.简化数据操作:视图可以简化用户处理数据的方式.    2.着重于特定数据:不必要的数据或敏感数据可以不出现在视图中.    3.视图提供了一个简单而有效的安全机制,可以定制 ...

  8. Mysql8.0.17安装(windows10)

    1.因为系统重装  又双叒叕开始了装mysql数据库 下载安装包 https://dev.mysql.com/downloads/mysql/ 2.解压到你想安装的地方 3.解压完是没有图红色框中的文 ...

  9. 批处理引擎MapReduce应用案例

    批处理引擎MapReduce应用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MapReduce能够解决的问题有一个共同特点:任务可以被分解为多个子问题,且这些子问题相对独立 ...

  10. django框架介绍安装-自写框架

    原文链接:https://www.cnblogs.com/maple-shaw/p/8862330.html Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户 ...