JDBC 连接Oracle
工作中,我们遇到的操作数据库代码都是封装起来的,今天我们就来看看,最基本的利用JDBC来操作数据库.
JDBC连接数据库主要有三个步骤:
第一步:加载数据库驱动。通常我们使用Class.forName静态方法来加载驱动。
第二步:通过DriverManager获取数据库连接.
第三步:通过Connection 创建Statement对象,Connection创建Statement对象方法有三个:
- createStatement():创建基本的Statement对象
- prepareStatement(String sql):根据传入的SQL语句创建预编译的Statement对象。
- prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象
第四步:使用Statement执行SQL语句。所有Statemet对象都有如下三个方法来执行SQL语句:
- execute:可以执行任何SQL语句,但比较麻烦.
- executeUpate:主要用于执行DML和DDL语句。执行DML返回受SQL语句影响的行数,执行DDL返回0。
- executeQuery:只能执行查询语句,执行后返回代表查询结果的ResultSet对象。
第五步:操作结果集。如果执行的SQL语句是查询语句,执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。程序可以通过操作该ResultSet来取出查询结果。ResultSet对象主要提供了两类方法:
- next、previous、first、last、beforeFirst、afterLast、absolute等移动记录指针的方法。
- getXXX获取记录指针指向行,特定列的值。该方法既可以使用列索引作为参数,也可以使用列名作为参数。使用列索引作为参数性能更好,使用列名作为参数,可读性更好!
下面是一段代码,基本上阐述了上面所说的东东:
package jdbc; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class ConnOracle { public static void main(String[] args) {
//首先定义下连接数据的URL、用户名、密码
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String user="scott";
String password="yulei123"; try {
//1.加载驱动,使用了反射的知识
Class.forName("oracle.jdbc.driver.OracleDriver");
/*
* 使用DriverManager获取数据库连接
* 其中返回的Connection就代表了JAVA程序和数据库的连接
* 不同数据库的URL写法需要查看驱动文档知道,用户名、密码由DBA分配
*/
Connection conn=DriverManager.getConnection(url, user, password);
//使用Connection来创建一个Statement对象
Statement stmt=conn.createStatement();
//执行SQL语句
/*
* Statement有三种执行SQL语句的方法
* 1、execute可执行任何SQL语句 --返回一个boolean值
* 如果执行后,第一个结果是ResultSet,则返回true,否则返回false
* 2、executeQuery 执行select 语句 --返回查询到的结果集
* 3、executeUpdate用于执行DML语句。---返回一个整数,代表被SQL语句影响的记录数
*/
String sql="select e.* from emp e";
ResultSet rs=stmt.executeQuery(sql);
//ResultSet有系列的GetXXX(索引名||列名),用于获取记录指针指向行、特定列的值
//不断的使用next将记录指针下移一行,如果依然指向有效行,则指针指向有效行的记录
while(rs.next()){
//使用索引
System.out.println("员工号:"+rs.getInt(1)+"\t员工姓名:"+rs.getString(2));
//使用列名
System.out.println("员工号:"+rs.getInt("empno")); } } catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} }
}
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 ...
随机推荐
- Windows安装和使用fftw
FFTW是一个比较快的.非常出名的一个DFT的开源库. 本文探索安装和配置FFTW,用Visual Studio 2008来使用fftw. 第一步:下载最新的fftw库 这一步很简单,只要在googl ...
- 第一行代码阅读笔记---AndroidMainfest.xml分析
按照这本书的指引,我随作者一样创建了一个安卓应用,开始了安卓开发的启程. 找到AndroidMainfest.xml这个文件,打开后看到了我创建的Activity在这个文件里被成功注册,文件内容如下: ...
- Android中三种计时器Timer、CountDownTimer、handler.postDelayed的使用
在android开发中,我们常常需要用到计时器,倒计时多少秒后再执行相应的功能,下面我就分别来讲讲这三种常用的计时的方法. 一.CountDownTimer 该类是个抽象类,如果要使用这个类中的方法, ...
- UNIX网络编程——epoll 系列函数简介、与select、poll 的区别
前面博客<<UNIX环境高级编程--epoll函数使用详解>>有关于epoll函数的讲解. 一.epoll 系列函数简介 #include <sys/epoll.h> ...
- API创建员工地址
DECLARE ln_address_id PER_ADDRESSES.ADDRESS_ID%TYPE; ln_object_version_number PER_ADDRESSES.OBJECT_V ...
- Android ClassLoader详解
我们知道不管是插件化还是组件化,都是基于系统的ClassLoader来设计的.只不过Android平台上虚拟机运行的是Dex字节码,一种对class文件优化的产物,传统Class文件是一个Java源码 ...
- Android的DatePicker和TimePicker-android学习之旅(三十八)
DatePicker和TimePicker简介 DatePicker和TimePicker是从FrameLayout继承而来,他们都是比较简单的组件.时间改变时间分别添加OnDateChangeLis ...
- Java-IO之超类OutputStream
图中我们可以看出,以字节为单位的输出流的公共父类是OutputStream: 从中我们可以看出,以字节为单位的输出流的公共父类是OutputStream: (1)OutputStream是以字节为单位 ...
- 《java入门第一季》之有趣的集合小案例---获取10个【1-20之间】的随机数,要求不能重复。
import java.util.ArrayList; import java.util.Random; /* * 获取10个[1-20之间]的随机数,要求不能重复.(注意:不是获取10个数,如果单纯 ...
- MinerBean.java 数据库表 miner bean
MinerBean.java 数据库表 miner bean package com.iteye.injavawetrust.miner; import java.util.Date; /** * 数 ...