Java数据库操作(JDBC)——eclipse连接oracle11g教程
转自:http://blog.csdn.net/mukekeheart/article/details/50019169Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。Eclipse 附带了一个标准的插件集,包括Java开发工具(Java DevelopmentKit,JDK)。 1.首先先建立一个项目DB,右键点击DB,选择Build Path-
Oracle 11g 64位百度云盘下载:http://pan.baidu.com/s/1dEljrpR
[参考:http://jingyan.baidu.com/article/f25ef25444249a482c1b82d1.html]
Oracle安装《一头扎进Oracle 11g》:http://www.tudou.com/listplay/_yGSNcRB3Fs.html?spm=a2h1s.8267930.infoPl.5~5~1~3~5!2~H6~A
PLSQLDeveloper下载地址:http://www.panduoduo.net/r/13494819
PL/SQL Developer连接本地Oracle 11g 64位数据库:http://www.cnblogs.com/ymj126/p/3712727.html
【中途用到的instantclient-basic-nt-12.1.0.2.0.zip :http://download.csdn.net/detail/u011850780/8740361】
PLSQL Developer新手使用教程(图文教程):http://jingyan.baidu.com/article/c85b7a6403acd1003bac950f.html
Oracle语法实例:引自 马士兵
create table DEPT3
(
DEPTNO NUMBER(2) primary key,
DNAME VARCHAR2(14),
LOC VARCHAR2(13)
);
insert into DEPT3 values(11,'Lei Li','Beijing');
insert into DEPT3 values(8,'Mei Han','Shanghai');
insert into DEPT3 values(2,'Ming Gao','Shenzhen');
select * from DEPT3;
实例一:转自:http://blog.csdn.net/mukekeheart/article/details/50019169
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
实例2:
参考:
a)Java JDBC Thin Driver 连接 Oracle 三种方法:http://aijuans.iteye.com/blog/1488998 英文版:http://razorsql.com/docs/help_oracle.html
格式一: Oracle JDBC Thin using a ServiceName:
jdbc:oracle:thin:@//<host>:<port>/<service_name>
Example: jdbc:oracle:thin:@//192.168.2.1:1521/XE
注意这里的格式,@后面有//, 这是与使用SID的主要区别。
这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 确可以包含所有节点。
【SERVICE_NAME通过安装的Oracle里边的“tnsnames.ora”里边寻找】
格式二: Oracle JDBC Thin using an SID:
jdbc:oracle:thin:@<host>:<port>:<SID>
Example: jdbc:oracle:thin:192.168.2.1:1521:X01A
Note: Support for SID is being phased out. Oracle recommends that users switch over to using service names.
格式三:Oracle JDBC Thin using a TNSName:
jdbc:oracle:thin:@<TNSName>
Example: jdbc:oracle:thin:@GL
Note:
Support for TNSNames was added in the driver release 10.2.0.1
b)一个非常标准的Java连接Oracle数据库的示例代码: http://www.cnblogs.com/liuxianan/archive/2012/08/05/2624300.html
import java.sql.*;
/*范例名称:
* 原文件名称:
* 要点:
* 1. JDBC之连接oracle数据库
*/
public class TestJDBC {
//private static String url="jdbc:oracle:"+"thin:@localhost:1521:orcl";//orcl好像是全局sid
private static String url="jdbc:oracle:"+"thin:@//localhost:1521/orcl.100.40.15";
//private static String url="jdbc:oracle:"+"thin:localhost:1521:oracle";
private static String user="scott";//用户名
private static String psd="Oracle11g";//密码
public static void main(String[] args) {
Connection conn=null;//创建一个数据库连接
PreparedStatement pre=null;//创建一个预编译语句对象,一般都是用这个而不用Statement
ResultSet result=null;//创建一个结果集对象
try{
//1)new一个数据库驱动实例 加载Oracle驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("开始尝试连接数据库");
//new oracle.jdbc.driver.OracleDriver();//new的第二个方法
//2)连接oracle数据库
conn=DriverManager.getConnection(url,user,psd);
System.out.println("连接陈功");
//3)执行SQL语句
String sql="select * from DEPT";
pre=conn.prepareStatement(sql);
result=pre.executeQuery();
while(result.next()){
System.out.println("Name: "+result.getString("DNAME")+", Location: "+result.getString("LOC"));
}
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally {
try
{
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (result != null){
result.close();
result=null;
}
if (pre != null){
pre.close();
pre=null;
}
if (conn != null){
conn.close();
conn=null;
}
System.out.println("数据库连接已关闭!");
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
运行结果:
连接陈功
Name: ACCOUNTING, Location: NEW YORK
Name: RESEARCH, Location: DALLAS
Name: SALES, Location: CHICAGO
Name: OPERATIONS, Location: BOSTON
数据库连接已关闭!
实例3——更新表
import java.sql.*;
/*范例名称:
* 原文件名称:
* 要点:
* 1. JDBC之连接oracle数据库:更新数据库的表
*/
public class TestDML {
// private static String
// url="jdbc:oracle:"+"thin:@localhost:1521:orcl";//orcl好像是全局sid
private static String url = "jdbc:oracle:" + "thin:@//localhost:1521/orcl.100.40.15";
// private static String url="jdbc:oracle:"+"thin:localhost:1521:oracle";
private static String user = "scott";// 用户名
private static String psd = "Oracle11g";// 密码
public static void main(String[] args) {
Connection conn=null;//创建一个数据库连接
PreparedStatement pre=null;//创建一个预编译语句对象,一般都是用这个而不用Statement
try{
//1)new一个数据库驱动实例 加载Oracle驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("开始尝试连接数据库");
//new oracle.jdbc.driver.OracleDriver();//new的第二个方法
//2)连接oracle数据库
conn=DriverManager.getConnection(url,user,psd);
System.out.println("连接陈功");
//3)执行SQL语句_添加数据
String sql;
//sql="insert into DEPT3 values (25,'Yang Tai','Qinhuangdao')";
//conn.prepareStatement(sql).executeUpdate();//更新表
sql="insert into DEPT3 values (?,?,?)";//使用通配符
pre=conn.prepareStatement(sql);
pre.setInt(1, 35);
pre.setString(2, "Liang Yue");
pre.setString(3, "Canghai");
pre.executeUpdate();//更新
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally {
try
{
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (pre != null){
pre.close();
pre=null;
}
if (conn != null){
conn.close();
conn=null;
}
System.out.println("数据库连接已关闭!");
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
实例4:批处理
import java.sql.*;
/*范例名称:
* 原文件名称:
* 要点:
* 1. JDBC之连接oracle数据库:更新数据库的表 批处理
* Transaction(用处:银行更新双方账户时,必须同时成功或者失败)
*/
public class TestDML {
// private static String
// url="jdbc:oracle:"+"thin:@localhost:1521:orcl";//orcl好像是全局sid
private static String url = "jdbc:oracle:" + "thin:@//localhost:1521/orcl.100.40.15";
// private static String url="jdbc:oracle:"+"thin:localhost:1521:oracle";
private static String user = "scott";// 用户名
private static String psd = "Oracle11g";// 密码
public static void main(String[] args) {
Connection conn=null;//创建一个数据库连接
PreparedStatement pre=null;//创建一个预编译语句对象,一般都是用这个而不用Statement
try{
//1)new一个数据库驱动实例 加载Oracle驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("开始尝试连接数据库");
//new oracle.jdbc.driver.OracleDriver();//new的第二个方法
//2)连接oracle数据库
conn=DriverManager.getConnection(url,user,psd);
System.out.println("连接陈功");
//3)执行SQL语句_添加数据
String sql;
sql="insert into DEPT3 values (?,?,?)";//使用通配符
pre=conn.prepareStatement(sql);
conn.setAutoCommit(false);//设置为不自动提交
pre.setInt(1, 32);
pre.setString(2, "Xing Xing");
pre.setString(3, "Yinhe");
pre.addBatch();//添加一条
pre.setInt(1, 44);
pre.setString(2, "Dong Hei");
pre.setString(3, "Yinhe");
pre.addBatch();//添加一条
conn.commit();//提交
conn.setAutoCommit(true);//恢复默认设置 自动提交
pre.executeBatch();//批处理更新
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
//处理出错
try{
if(conn!=null){
conn.rollback();
conn.setAutoCommit(true);
}
}catch (SQLException e1) {
e1.printStackTrace();
}
}finally {
try
{
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (pre != null){
pre.close();
pre=null;
}
if (conn != null){
conn.close();
conn=null;
}
System.out.println("数据库连接已关闭!");
}
catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
SQL Explorer插件 (参考下一篇文章)显示Oracle用户属性
更多推荐
所有评论(0)