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