1. 需要oracle的 odbc  jar包

2. 代码

3. 注意:ps对象和statement对象最好用完立即释放,尤其是读写数据库代码出现在 for 循环语句中时。

否则会出现游标不够的情况,超出游标最大数等游标错误!

4. 案例:我在将Excel导入到Oracle数据库中时,由于搜索网上代码,未深刻领会。在遍历Excel的每一行数据时,都执行

pre = con.prepareStatement(sql) 。直到Excel中的5000行数据遍历完后才 执行   pre.close(); ,结果报错,出现

超出游标错误!后来更正为在 for 循环内部,执行完  pre.executeQuery(); 紧接着,立即执行  pre.close(); (当然关闭前还要有

个 pre 判空的判断语句)。更正后,一次顺利导入5000条数据。

 public void testOracle()
{
Connection con = null;// 创建一个数据库连接
PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
ResultSet result = null;// 创建一个结果集对象
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
System.out.println("开始尝试连接数据库!");
String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
String user = "system";// 用户名,系统默认的账户名
String password = "147";// 你安装时选设置的密码
con = DriverManager.getConnection(url, user, password);// 获取连接
System.out.println("连接成功!");
String sql = "select * from student where name=?";// 预编译语句,“?”代表参数
pre = con.prepareStatement(sql);// 实例化预编译语句
pre.setString(1, "刘显安");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
while (result.next())
// 当结果集不为空时
System.out.println("学号:" + result.getInt("id") + "姓名:"
+ result.getString("name"));
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (result != null)
result.close();
if (pre != null)
pre.close();
if (con != null)
con.close();
System.out.println("数据库连接已关闭!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}

最新文章

  1. PHP-----类与对象,成员方法,成员属性,构造方法,析构方法
  2. 『TCP/IP详解——卷一:协议』读书笔记——01
  3. POJ-2886 Who Gets the Most Candies?(线段树+模拟)
  4. 3905 - Meteor
  5. fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
  6. Linux查看硬盘使用时间等信息
  7. -Android的发展webservice-号码归属地查询
  8. [js高手之路]从零开始打造一个javascript开源框架gdom与插件开发免费视频教程连载中
  9. web.xml 文件中一般包括 servlet, spring, filter, listenr的配置的加载顺序
  10. Python中进程
  11. 一篇详细的linux中shell语言的字符串处理
  12. websocket通信 实现java模拟一个client与webclient通信
  13. 跨域两种解决方案CORS以及JSONP
  14. The servlet name already exists.解决方法
  15. MySQL 之管理脚本
  16. spring batch批处理框架学习
  17. Message Flood(map)
  18. node.js获取url中的各个参数
  19. matplotlib绑定到PyQt5(无菜单)
  20. Asp.net MVC Comet 推送

热门文章

  1. JNI/NDK开发
  2. Java基础笔记(十二)——方法
  3. Docker从入门到实战(三)
  4. Silverlight 密码框 Focus
  5. C# this索引器
  6. how to keep impact-crusher in good condition
  7. Linux与DOS的常用命令比较
  8. Asp.NET MVC+WebAPI跨域调用
  9. ACdream 1216——Beautiful People——————【二维LIS,nlogn处理】
  10. onclientclick与onclick的问题.