java连接oracle和sqlloader入库

上传人:平*** 文档编号:15886981 上传时间:2017-11-06 格式:DOC 页数:5 大小:58.07KB
返回 下载 相关 举报
java连接oracle和sqlloader入库_第1页
第1页 / 共5页
java连接oracle和sqlloader入库_第2页
第2页 / 共5页
java连接oracle和sqlloader入库_第3页
第3页 / 共5页
java连接oracle和sqlloader入库_第4页
第4页 / 共5页
java连接oracle和sqlloader入库_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《java连接oracle和sqlloader入库》由会员分享,可在线阅读,更多相关《java连接oracle和sqlloader入库(5页珍藏版)》请在金锄头文库上搜索。

1、1. Oracle sqlload 入门基础学习1.1 sql loader 的特点oracle 自己带了很多的工具可以用来进行数据的迁移、备份和恢复等工作。但是每个工具都有自己的特点。比如说 exp 和 imp 可以对数据库中的数据进行导出和导出的工作,是一种很好的数据库备份和恢复的工具,因此主要用在数据库的热备份和恢复方面。有着速度快,使用简单,快捷的优点;同时也有一些缺点,比如在不同版本数据库之间的导出、导入的过程之中,总会出现这样或者那样的问题,这个也许是 oracle 公司自己产品的兼容性的问题吧。sql loader 工具却没有这方面的问题,它可以把一些以文本格式存放的数据顺利的导

2、入到oracle 数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。缺点就速度比较慢,另外对 blob 等类型的数据就有点麻烦了。1.2 sql loader 帮助进入 dos 命令,输入 sqlldr:C:sqlldr ,将会显示 sqlloader 的帮助。1.3 sql loader 使用例子新建 input.ctl,用文本格式编写:load data -1、控制文件标识 infile c:test.txt -2、要输入的数据文件名为 test.txt append into table test -3、向表 test 中追加记录 fields terminated

3、by , -4、字段以“,” 进行分割取出数据(id,username,password,sj) -定义列对应顺序新建 test.txt,内容如下:id,username,password,sj1, 2, 3, 41, 2, 3, 41, 2, 3, 41, 2, 3, 41, 2, 3, 41, 2, 3, 41, 2, 3, 41, 2, 3, 4Sqlloader 命令Sqlldr userid=utl/utl2011utl control=c:input.ctl注:其中 Test 表已存在,否则将导入失败,input.ctl 和 test.txt 最好放同一目录下,我的是在 c 盘的根

4、目录下1.4 java 环境下调用 sqlloaderString strcmd=cmd /c sqlldr userid=utl/utl2011utl control=c:input.ctl;Process process = Runtime.getRuntime().exec(strcmd);2. 类 ProcessProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。Process 类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)

5、进程的方法。 创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,守护进程,Microsoft Windows 上的 Win16/DOS 进程,或者 shell 脚本。创建的子进程没有自己的终端或控制台。它的所有标准 io(即 stdin,stdout,stderr)操作都将通过三个流 (getOutputStream(),getInputStream(),getErrorStream() 重定向到父进程。父进程使用这些流来提供到子进程的输入和获得从子进程的输出。因为有些本机平台仅针对标准输入和输出流提供有限的缓冲区大小,如果读写子进程的输出流或输入流迅速出现失败

6、,则可能导致子进程阻塞,甚至产生死锁。 当没有 Process 对象的更多引用时,不是删掉子进程,而是继续异步执行子进程。 对于带有 Process 对象的 Java 进程,没有必要异步或并发执行由 Process 对象表示的进程。3. Myeclipse 单步调试3.1 单步调试的基本操作1, 首先在一个 java 文件中设断点,然后运行,当程序走到断点处就会转到debug 视图下, 2, F5 键与 F6 键均为单步调试,F5 是 step into,也就是进入本行代码中执行,F6 是 step over, 也就是执行本行代码,跳到下一行,3,F7 是跳出函数 step return 4,

7、F8 是执行到最后。 3.2 单步调试详解1. Step Into (also F5) 跳入2.Step Over (also F6) 跳过 3.Step Return (also F7) 执行完当前 method,然后 return 跳出此method 4.step Filter 逐步过滤 一直执行直到遇到未经过滤的位置或断点 (设置Filter:window-preferences-java-Debug-step Filtering) 5.resume 重新开始执行 debug,一直运行直到遇到 breakpoint 6.hit count 设置执行次数 适合程序中的 for 循环( 设置

8、 breakpoint view-右键 hit count) 7.inspect 检查 运算。执行一个表达式显示执行值 8.watch 实时地监视变量的变化 9.我们常说的断点(breakpoints)是指 line breakpoints,除了 line breakpoints,还有其他的断点类型:field(watchpoint)breakpoint,method breakpoint,exception breakpoint. 10.field breakpoint 也叫 watchpoint(监视点) 当成员变量被读取或修改时暂挂 11.添加 method breakpoint 进入/

9、 离开此方法时暂挂(Run-method breakpoint) 12.添加 Exception breakpoint 捕抓到 Execption 时暂挂(待续.) 断点属性: 1.hit count 执行多少次数后暂挂 用于循环 2.enable condition 遇到符合你输入条件( 为 ture改变时)就暂挂 3.suspend thread 多线程时暂挂此线程 4.suspend VM 暂挂虚拟机 13.variables 视图里的变量可以改变变量值,在 variables 视图选择变量点击右键-change value.一次来进行快速调试。 14.debug 过程中修改了某些 co

10、de 后-save&buildresume重新暂挂于断点 4 java jdbc 方式连接 Oracle 数据库首先要导入 classes12.jar 包, classes12.jar 在你本机的 Oracle 安装目录:E:oracleproduct10.2.0client_1jdbclib 下,我的 Oracle 安装在 E 盘。怎样导入 classes12.ja:选中项目右键选中 Properties-Java Build Path-Libraries-Add External-JARs/*jdbc:表示采用jdbc方式连接数据库oracle:表示连接的是oracle数据库thin:表示

11、连接时采用thin模式(oracle中有两中模式)jdbc:oralce:thin:是一个jni方式的命名表示地址1521和utl表示端口和数据库名192.168.3.98:1521:orcl整个是一快也就是说是这样jdbc:oracle:thin:192.168.0.10:1521:utl*/String url=jdbc:oracle:thin:192.168.0.10:1521:utl;String sql=select * from test;/*此句是通过字符串来查找类,返回的是一个Class类的对象,这句的作用是让系统加载该类,系统加载同时会自动调用该数据库驱动类的static块完

12、成初始化工作(在这里是注册数据库驱动) */Class.forName(oracle.jdbc.driver.OracleDriver);/建立数据库连接Connection con=DriverManager.getConnection(url,utl,utl2011);/创建一个 Statement 对象来将 SQL 语句发送到数据库。Statement st=con.createStatement();/执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。ResultSet rs=st.executeQuery(sql);while(rs.next()/将指针从当前位置下

13、移一行。System.out.print(rs.getString(1)+ );System.out.print(rs.getString(2)+ );System.out.print(rs.getString(3)+ );System.out.print(rs.getString(4)+ );System.out.println();5.Runtime 类中的 freeMemory,totalMemory,maxMemory 等几个方法5.1 maxMemory()这个方法返回的是 java 虚拟机(这个进程)能构从操作系统那里挖到的最大的内存,以字节为单位,如果在运行 java 程序的时

14、候,没有添加-Xmx 参数,那么就是 64 兆,也就是说 maxMemory()返回的大约是 64*1024*1024 字节,这是java 虚拟机默认情况下能 从操作系统那里挖到的最大的内存。如果添加了-Xmx 参数,将以这个参数后面的值为准,例如 java -cp ClassPath -Xmx512m ClassName,那么最大内存就是 512*1024*0124 字节。 5.2 totalMemory()这个方法返回的是 java 虚拟机现在已经从操作系统那里挖过来的内存大小,也就是 java 虚拟机这个进程当时所占用的所有 内存。如果在运行 java 的时候没有添加-Xms 参数,那么

15、,在 java 程序运行的过程的,内存总是慢慢的从操作系统那里挖的,基本上是用多少挖多少,直 挖到 maxMemory()为止,所以totalMemory()是慢慢增大的。如果用了-Xms 参数,程序在启动的时候就会无条件的从操作系统中挖- Xms 后面定义的内存数,然后在这些内存用的差不多的时候,再去挖。 5.3 freeMemory()是什么呢,刚才讲到如果在运行 java 的时候没有添加-Xms 参数,那么,在 java 程序运行的过程的,内存总是慢慢的从操 作系统那里挖的,基本上是用多少挖多少,但是 java 虚拟机 100的情况下是会稍微多挖一点的,这些挖过来而又没有用上的内存,实际上就是 freeMemory(),所以 freeMemory()的值一般情况下都是很小的,但是如果你在运行 java 程序的时候使用了-Xms,这个时候因为程 序在启动的时候就会无条件的从操作系统中挖-Xms 后面定义的内存数,这个时候,挖过来的内存可能大部分没用上,所以这个时候 freeMemory()可 能会有些大。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号