`
eagle0824
  • 浏览: 231642 次
  • 性别: Icon_minigender_1
  • 来自: 镇江
社区版块
存档分类
最新评论

lomboz_eclipse ---oracle 笔记

阅读更多
lomboz_eclipse (MyEclipse,JBuilder)

JDBC(Java Database Connectivity)
JDBC 简介

(c,c++,java...) ---- (API for Oracle) -->Oracle
(c,c++,java...) ---- (API for SQLServer) -->SQLServer
(c,c++,java...) ---- (API for Mysql) -->Mysql
(c,c++,java...) ---- (API for ...) -->Oracle
(c,c++,java...)--(ODBC,JDBC)-->(Oracle,SQLServer.Mysql...)

SQL语言回顾
select * from T where...
insert into T values(...)
create table T()
delect form T where...
update T set t1=..and t2=.. where t3=...
drop table T

JDBC基础编程(java.sql.*)
JDBC编程步骤
1.Load the Driver(装载并注册数据库的JDBC驱动程序,不同数据库的不同连接类库,将Oracle的JDBC类库导入到classpath中)
(1)载入JDBC驱动:Class.forName()|Class.forName().newInstance()|new DriverName()
(2)注册JDBC驱动: java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
实例化时自动向DriverManager注册,不需显示调用DriverManager.registerDriver方法
2.Connect to the DataBase
(1)DriverManager.getConnection()
要建立与数据库的连接,首先要创建指定数据库的URL。连接数据库的URL对象,利用DriverManager 的getConnection方法建立的。数据库URL对象与网络资源的统一资源定位类似,其构成格式如下:
  jdbc:subProtocol:subName://hostname:port;DatabaseName=ⅹⅹⅹ
  其中:
  jdbc表示当前通过Java的数据库连接进行数据库访问;
  subProtocol表示通过某种驱动程序支持的数据库连接机制;
  subName表示在当前连接机制下的具体名称;
  hostname表示主机名;
  port表示相应的连接端口;
  DatabaseName表示要连接的数据库的名称。
  这里以与Oracle数据库的连接为例:
  连接Oracle 8/8i/9i数据库(用thin模式) url = jdbc:oracle:thin:@hostip:1521:oracleSID;
  注意:hostip指主机的ip地址,oracleSID指数据库的SID。如何查看 oracleSID
  1.在oracle的安装目录下,如D:\oracle\product\10.2.0\db_1\dbs,看文件名如SPFILEORCL.ORA,那么就是orcl,也就是说文件名字是   "SPFILE******.ORA ",那种的 "**** "就是SID
  2.D:\oracle\product\10.2.0\oradata\SID文件夹... 或D:\oracle\product\10.2.0\db_1\dbs\SPFILESID名称.ORA
  3.select instance_name from v$instance
  再者确定连接数据库的用户名与密码,即user和password 的值:user = “ⅹⅹⅹ “; password = “ⅹⅹⅹ“;
  最后使用如下语句:
  Connection con=(java.sql.)DriverManager.getConnection(url,user,password);

3.Execute the SQL(用连接创建语句对象)
(1)Connection.CreateStatement()
(2)Statement.executeQuery(select语句)//返回一组结果集,其像游标,指针指在第一条记录的上面
(3)Statement.executeUpdate(insert,update,delete语句)
String sql = "insert into dept2 values (" + deptno + ",'" + dname + "','"+loc+"')";//取值
System.out.println(sql);
4.Retrieve the result data
(1)循环取得结果while(rs.next())
5.Show the result data
(1)将数据库中的各种类型转换为Java中的类型(getXXX)方法
6.Close
(1)依次关闭ResultSet、Statement和Connection对象(XXX.close())
close the resultset/ close the statement / close the connection
for example:
import java.sql.*;
public class TestJDBC {

public static void main(String[] args){
ResultSet rs = null;
Statement stmt = null;
Connection conn = null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");//new 一个驱动类的实例
//new oracle.jdbc.driver.OracleDriver();
conn = DriverManager.getConnection("jdbc:oracle:thin:@10.3.5.19:1521:XST", "scott", "tiger");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from dept");
while(rs.next()){
System.out.println(rs.getString("deptno"));
System.out.println(rs.getInt(1));
}
}catch(ClassNotFoundException e){
e.printStackTrace();//logforg记录错误
}catch(SQLException e){
e.printStackTrace();
}finally{
try {
if(rs!=null){
rs.close();
rs = null;
}
if(stmt!=null){
stmt.close();
stmt = null;
}
if(conn!=null){
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}

}

}
JDBC编程高级
String sql = "insert into dept2 values (" + deptno + ",'" + dname + "','" + loc + "')";
prepareStatement  灵活指定SQL语句中的变量
pstmt = conn.preparedStatement("insert into dept2 values (?,?,?)");
pstmt.setInt(1, deptno);
pstmt.setString(2, dname);
pstmt.setString(3, loc);
pstat.executeUpdate();

CallableStatement  对存储过程进行调用
CallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");//调用过程p
cstmt.registerOutParameter(3, Types.INTEGER);//设置第三个参数为输出变量,类型为整型
cstmt.setInt(1, 3);//设置第一个变量的值为3
System.out.println(cstmt.getInt(3))//取出第三个变量的值并输出

Batch  批处理(Statement,PreparedStatement 都可以用 addBatch();executeBatch())

Transaction  运用事务处理
conn.setAutoCommit(false);
........
conn.commit();
conn.setAutoCommit(true);
catch(SQLException e){if(conn!=null){conn.rollback();conn.setAutoCommit(true);}}

可以前后移动结果集 Movable ResultSet
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
Rs.next()
Rs.islast()
Rs.isAfterLast()
Rs.absolute()
Rs.getRow() 返回值当前记录行  与Rs.last()可以确定一共有多少条记录

Updatable ResultSet(*)
DataSource and RowSet
1)DataSource (数据源,一般不再单机上实现)
DriverManage(拿到跟数据库的连接) 的替代;连接池的实现;分布式实现(DataSource的属性可以动态改变)
2)RowSet
新的ResultSet;从ResultSet继承;支持断开的结果集;支持JavaBean标准
example 2
import java.sql.*;

public class TestPrepared {


public static void main(String[] args) {
if(args.length!=3){
System.out.println("Parameter Error!Please try again");
System.exit(-1);
}

int deptno  = 0;

try {
deptno = Integer.parseInt(args[0]);
} catch (NumberFormatException e1) {
System.out.println("Parameter Error!deptno shold be Number format");
System.exit(-1);
}

String dname = args[1];
String loc = args[2];

Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@10.3.5.19:1521:orcl","scott","tiger");
//String sql = "insert into dept2 values (" + deptno + ",'" + dname + "','" + loc + "')";
pstmt = conn.prepareStatement("insert into dept2 values (?,?,?)");

pstmt.setInt(1, deptno);
pstmt.setString(2, dname);
pstmt.setString(3, loc);

pstmt.executeUpdate();

} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch(SQLException e){
e.printStackTrace();
} finally{
try {
if(pstmt != null){
pstmt.close();
pstmt = null;
}
if(conn != null){
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}

}

}
example 3
import java.sql.*;


public class TestTransaction {

public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@10.3.5.19:1521:orcl","scott","tiger");
conn.setAutoCommit(false);
stmt= conn.createStatement();
stmt.addBatch("insert into dept2 values(99,'salse','haiyang')");
stmt.addBatch("insert into dept2 values(99,'salse','haiyang')");
stmt.addBatch("insert into dept2 values(99,'salse','haiyang')");
stmt.executeBatch();
conn.commit();
conn.setAutoCommit(true);

}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(stmt!=null){
stmt.close();
stmt = null;
}

if(conn!=null){
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}



}


}









分享到:
评论

相关推荐

    .lomboz-R-3.3-200710290621.zip

    《.lomboz-R-3.3-200710290621.zip:Eclipse与Java开发的利器》 .lomboz-R-3.3-200710290621.zip 文件是一个古老的Eclipse插件版本,Lomboz,用于Java开发。Lomboz是Eclipse平台上的一个开源项目,专门针对Java...

    lomboz-R-3.3-21

    Lomboz是Eclipse的一个J2EE的插件,它将很多Java应用服务器、J2EE组件和Web应用开发集成到Eclipse中,可以帮助Java开发者使用Eclipse建立、测试、部署J2EE应用。 一、Lomboz特点-支持JSP编写,包括:语法着色和语法...

    (WORD版本) Eclipse_lomboz_jboss 开发指南

    《Eclipse_lomboz_jboss 开发指南》是一份详细阐述如何使用Eclipse集成开发环境(IDE)结合Lomboz插件以及JBoss应用服务器来构建和部署J2EE应用程序的文档。本指南将深入探讨如何配置Eclipse,安装Lomboz插件,设置...

    lomboz-emf-gef-jem-3.1RC2.zip

    总结来说,"lomboz-emf-gef-jem-3.1RC2.zip" 是一个针对Java Web开发者的强大工具集,它整合了Eclipse的多个扩展,如Lomboz用于Web开发,EMF和GEF用于模型驱动和图形化编辑,JEM则助力Java EE应用的建模。...

    eclipse(Lomboz_JSP_JAVA_WEB_插件的安装与配置)

    ### Eclipse Lomboz JSP Java Web 插件的安装与配置详解 #### 一、引言 随着Java Web技术的发展,Eclipse作为一个强大的开源IDE(集成开发环境),深受开发者喜爱。然而,Eclipse本身并未集成所有Java Web开发所需...

    org.objectweb.lomboz-R-3.2-200610201336

    org.objectweb.lomboz-R-3.2-200610201336

    Eclipse插件之Lomboz

    Eclipse的Lomboz插件,本人的Eclipse平台:eclipse-jee-galileo-SR1-win32+org.objectweb.lomboz-R-3.3-200710290621+struts-2.1.8.1-all+tomcatPluginV321+ org.eclipse.babel.nls_eclipse_zh_3.5.0.v...

    eclipse jsp包 org.objectweb.lomboz _3.1.0.zip

    Lomboz是Eclipse的一个早期扩展,它提供了对J2EE应用开发的支持,包括JSP、Servlet和EJB等。"org.objectweb.lomboz _3.1.0.zip"这个压缩包可能是Lomboz 3.1.0版本的源码或者插件集合。 Eclipse JSP支持主要包括以下...

    Eclipse 3.1.2+lomboz 3.1.2+tomcat 5.0.28配置过程

    - 对于 `lomboz-wtp-emf-gef-jem-3.1.2` 插件也执行相同的步骤。 #### Tomcat 配置 1. **安装 Tomcat 5.0.28**: 解压 Tomcat 到指定位置,例如 `C:\Tomcat 5.0`。 2. **启动与测试**: - 使用命令行进入到 Tomcat ...

    Lomboz-Eclipse+TOMCAT插件教程

    【Lomboz-Eclipse+TOMCAT插件教程】 在软件开发领域,Eclipse是一款广泛使用的集成开发环境(IDE),而Tomcat则是一款流行的开源Java Servlet容器,常用于部署和运行Java Web应用。Lomboz是Eclipse的一个早期插件,...

    eclipse插件之汉化包

    Eclipse的汉化包,可以用于Eclipse3.5.1,本人的Eclipse平台:eclipse-jee-galileo-SR1-win32+org.objectweb.lomboz-R-3.3-200710290621+struts-2.1.8.1-all+tomcatPluginV321+ org.eclipse.babel.nls_eclipse_zh_...

    org.objectweb.lomboz.hibernateide-R-3.3-200710290621.zip

    7. **Eclipse插件形式**:Lomboz以Eclipse插件的形式存在,这意味着它能够无缝地融入到Eclipse开发环境中,充分利用Eclipse的其他强大功能。 尽管Lomboz HibernateIDE在当时是一个非常有用的工具,但随着技术的发展...

    eclipse3.1.2 tomcat lomboz3.1.2配置

    5. **Lomboz Plugin**: lomboz-wtp-emf-gef-jem-3.1.2.zip 及 org.objectweb.lomboz_3.1.0.N20050106.zip 6. **Tomcat Plugin for Eclipse**: tomcatPluginV31.zip #### 二、插件下载与安装 **1. Lomboz Plugin ...

    使用Eclipse开发J2EE应用.rar_eclipse j2_eclipsej2_jboss_lomboz

    在本文中,我们将深入探讨如何使用Eclipse IDE进行J2EE应用程序的开发,结合Lomboz插件和JBoss应用服务器。Eclipse是一款强大的开源集成开发环境,特别适合Java开发者,而Lomboz是Eclipse的一个扩展,为J2EE项目提供...

    Lomboz插件的安装与配置

    - **文件名**: lomboz-wtp-emf-gef-jem-eclipse-SDK-3.1.2-win32.zip - **操作步骤**: 下载完成后,解压该ZIP包即可直接运行Lomboz。 **2.2.2 EMF包和Lomboz插件** - **下载地址**: ...

    Lomboz-V3.3-200710290621

    从"org.objectweb.lomboz-V3.3-200710290621"这个压缩包文件的名称来看,我们可以推测这包含了Lomboz的完整源码,这对于开发者来说是一份宝贵的资源。通过研究源码,不仅可以深入理解Lomboz的设计思想,还可以定制化...

    java jdk环境配置 java tomcat eclipse软件下载 安装 插件 环境配置大全

    - **EMF 插件和 Lomboz 插件**: 将解压后的 `feature` 和 `plugins` 目录拷贝至 `D:\eclipse`。 #### 三、Eclipse 配置 1. **Installed JREs 配置:** - 打开 Eclipse 配置界面: `Window -> Preferences`。 - ...

Global site tag (gtag.js) - Google Analytics