JDBC连接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;
- try {
- //反射Oracle数据库驱动程序类
- Class.forName(driverName);
- //获取数据库连接
- conn = DriverManager.getConnection(url, user, password);
- //输出数据库连接
- System.out.println(conn);
- //定制sql命令
- String sql = "select * from t_user where user_id = ?";
- //创建该连接下的PreparedStatement对象
- pstmt = conn.prepareStatement(sql);
- //传递第一个参数值 root,代替第一个问号
- pstmt.setString(1, "root");
- //执行查询语句,将数据保存到ResultSet对象中
- rs = pstmt.executeQuery();
- //将指针移到下一行,判断rs中是否有数据
- if(rs.next()){
- //输出查询结果
- System.out.println("查询到名为【" + rs.getString("user_id") + "】的信息,其密码为:" + rs.getString("password"));
- }else{
- //输出查询结果
- System.out.println("未查询到用户名为【" + rs.getString("user_id") + "】的信息");
- }
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }finally{
- try{
- if(rs != null){
- rs.close();
- }
- if(pstmt != null){
- pstmt.close();
- }
- if(conn != null){
- conn.close();
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- public static void main(String[] args){
- new TestConnection().SelectUser();
- }
- }
在main函数中,右键,选择“Run as”=>"Java Application",就会运行该程序段,在Console中,可以看到运行结果,如果给出一串类似于“Oracle.jdbc.driver.T4CConnection@7c242f04”这样的字符串,就说明你连接成功了。运行结果如图:
下面我们来简单解剖一下这段程序。
这段程序是Java连接oracle数据库的实例,采用jdbc来完成连接数据库的操作,所以需要引入ojdbc14.jar。在操作前,首先得先得到数据库驱动类的对象,通过驱动对象拿到数据库连接对象。其中Class.forName(driverName)就是应用类反射机制,加载驱动程序的。DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。一般只需要在类中直接使用方法DriverManager.getConnection,即可建立与数据库的连接
PreparedStatement 接口继承Statement,是用来执行数据库操作的类。PreparedStatement在多次调用时的效率要比Statement高很多,所以很多人都主张以PreparedStatement代替Statement。在接下来的博文中,会详细介绍一下这点《深入 理解 Statement 和 PreparedStatement》。PreparedStatement可以看做.net中的Command的类。
ResultSet 接口在很多语言中都出现过,它主要来存放查询到的数据。每次查询到数据后,Java语言中通常使用next()方法来读取数据。
JDBC连接Oracle的更多相关文章
- jdbc连接oracle数据库
/*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...
- Linux(Centos)下jdbc连接oracle速度超慢的问题
最近在centos下写个java swing程序,发现在linux用jdbc连接oracle及其缓慢,还经常失败.但是同样的程序在windows下运行就连接的非常快.网上搜索了很长时间都和我这情况没关 ...
- jdbc 连接 oracle rac
jdbc 连接 oracle rac 的连接串如下: jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192. ...
- JDBC连接Oracle数据库的问题
场景:最近做一个java web项目,使用jdbc连接Oracle数据库,遇到了两个问题. 问题1:jdbc连接不上Ubuntu Oracle服务器? 后来发现这个问题的原因是由于连接字符串写错了,修 ...
- JDBC连接Oracle数据库时出现的ORA-12505错误及解决办法
转载至http://www.blogjava.net/itspy/archive/2007/12/20/169072.html Oracle 问题描述:今天使用jdbc连接oracle 10.2.0. ...
- jdbc连接oracle数据库问题
下面是JDBC连接oracle数据库流程: String dbURL = "jdbc:oracle:thin:@url:1521:service_name"; String use ...
- JDBC 连接Oracle 数据库,JDBC 连接Mysql 数据库
首先是JDBC 连接Oracle 数据库 package com.util; import com.pojo.UserInfo; import java.sql.*; public class DB ...
- JAVA通过JDBC连接Oracle数据库详解【转载】
JAVA通过JDBC连接Oracle数据库详解 (2011-03-15 00:10:03) 转载▼http://blog.sina.com.cn/s/blog_61da86dd0100q27w.htm ...
- JDBC连接ORACLE无法登陆java.sql.SQLException: ORA-01017: invalid username/password; logon denied
当用jdbc连接Oracle数据库的时候 private Connection getConnection() throws SQLException { OracleDataSource ods = ...
- jdbc连接oracle数据库字符串
jdbc连接oracle数据库有两种方式: 连接数据库SID 连接数据库service_name 当连接SID时,字符串如下: url::orcl1" password="xxxx ...
随机推荐
- Hibernate各种主键生成策略与配置详解(转)
原文链接:http://www.cnblogs.com/hoobey/p/5508992.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate ...
- WebAPI学习笔记
WebAPI WebApi是添加到Asp.Net平台的一个新特性,可以快速的创建Web服务,并对客户端提供HTTP的API调用接口 WebApi是建立在MVC框架基础之上,但不属于MVC的一部分. 序 ...
- 使用idea写ssm的时候提示源文件夹中的文件找不到
<context:property-placeholder location="classpath:db.properties"/>这一行idea提示找不到db.pro ...
- ovs源码阅读--流表查询原理
背景 在ovs交换机中,报文的处理流程可以划分为一下三个步骤:协议解析,表项查找和动作执行,其中最耗时的步骤在于表项查找,往往一个流表中有数目巨大的表项,如何根据数据报文的信息快速的查找到对应的流表项 ...
- 用Tensorflow完成简单的线性回归模型
思路:在数据上选择一条直线y=Wx+b,在这条直线上附件随机生成一些数据点如下图,让TensorFlow建立回归模型,去学习什么样的W和b能更好去拟合这些数据点. 1)随机生成1000个数据点,围绕在 ...
- 4.hive的外部表和内部表
1.外部表和内部表区别 创建表时:创建内部表时,会将数据移动到数据仓库指向的路径:若创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变. 删除表时:在删除表的时候,内部表的元数据和数据会被一 ...
- Chrome 鲜为人知的秘籍(内部协议)&&Chrome功能指令大全
楼主以 Chrome 版本 39.0.2171.95 m 为例,耗费2小时的记录: chrome://accessibility 用于查看浏览器当前访问的标签,打开全局访问模式可以查看:各个标签页面的 ...
- sprint1_11.15燃尽图(第二天)
找相关的图片资料用于做点餐系统的界面 燃尽图:
- Scrum立会报告+燃尽图(十月二十六日总第十七次)
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...
- Thunder团队——选题展示
团队名称:Thunder 组长:王航 成员:李传康.代秋彤.邹双黛.苗威.宋雨.胡佑蓉.杨梓瑞 项目名称:爱阅app 视频展示: http://www.cnblogs.com/lick468/p/76 ...