linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > JAVA >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·Ajax实现在textbox中模糊查询显
·Ajax实现分页查询
·java定时执行的三种方法
·读取数码照片中的Exif信息
·基于Spring+Hibernate+Eclip
·JAVA反编译工具jad的简单用法
·Java编程基础
·Java调用Oracle的过程和函数
·JSP获取客户端的浏览器和操作系
·java.lang包概述
·Java中利用通讯API编写短信软件
·利用Java实现网页浏览器
·Java文件操作大全
·JAVA技术:上传图片的缩放处理
·基于JSF和DAO模式的大型设备采
最新文章
·实例解析:Linux操作系统下Jav
·JAVA得到网卡物理地址(Windows
·Ajax实现在textbox中模糊查询显
·Ajax简单示例之改变下拉框动态
·AJAX如何与后台交互
·Ajax实现分页查询
·Ajax核心:XMLHTTP组件相关技术
·面向Java程序员的Ajax:构建动态
·JSP获取客户端的浏览器和操作系
·提高Java技能的几种简单有效的
·敏捷开发中需掌握移除重复代码
·Java中利用通讯API编写短信软件
·关于String和StringBuffer
·用Java得到硬盘空间
·如何优化JAVA程序设计和编码,
Google
 
JAVA数据库基本操作指南
[ 作者:  加入时间:2007-10-25 13:39:43  来自:51CTO ]

Java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接。

一、取得数据库连接

1、用DriverManager取数据库连接

例子:

String className,url,uid,pwd;fYULinux联盟
className = "oracle.jdbc.driver.OracleDriver";fYULinux联盟
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;fYULinux联盟
uid = "system";fYULinux联盟
pwd = "manager";fYULinux联盟
Class.forName(className);fYULinux联盟
Connection cn = DriverManager.getConnection(url,uid,pwd);

2、用jndi(java的命名和目录服务)方式

例子:

String jndi = "jdbc/db";fYULinux联盟
Context ctx = (Context) new InitialContext().lookup("java:comp/env");fYULinux联盟
DataSource ds = (DataSource) ctx.lookup(jndi);fYULinux联盟
Connection cn = ds.getConnection();

多用于jsp中。

二、执行sql语句

1、用Statement来执行sql语句

String sql;fYULinux联盟
Statement sm = cn.createStatement();fYULinux联盟
sm.executeQuery(sql); // 执行数据查询语句(select)fYULinux联盟
sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)

statement.close();

2、用PreparedStatement来执行sql语句

String sql;fYULinux联盟
sql = "insert into user (id,name) values (?,?)";fYULinux联盟
PreparedStatement ps = cn.prepareStatement(sql);fYULinux联盟
ps.setInt(1,xxx);fYULinux联盟
ps.setString(2,xxx);fYULinux联盟
...fYULinux联盟
ResultSet rs = ps.executeQuery(); // 查询fYULinux联盟
int c = ps.executeUpdate(); // 更新

三、处理执行结果

查询语句,返回记录集ResultSet。

更新语句,返回数字,表示该更新影响的记录数

ResultSet的方法

(1)next(),将游标往后移动一行,如果成功返回true;否则返回false

(2)getInt("id")或getSting("name"),返回当前游标下某个字段的值

四、释放连接

cn.close();

一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection。

(一)可滚动、更新的记录集

1、创建可滚动、更新的Statement

Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,

ResultSet.CONCUR_READ_ONLY);

该Statement取得的ResultSet就是可滚动的

2、创建PreparedStatement时指定参数

PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY);

ResultSet.absolute(9000);

二)批量更新

1、Statement

Statement sm = cn.createStatement();fYULinux联盟
sm.addBatch(sql1);fYULinux联盟
sm.addBatch(sql2);fYULinux联盟
...fYULinux联盟
sm.executeBatch()

一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有

2、PreparedStatement

PreparedStatement ps = cn.preparedStatement(sql);fYULinux联盟
{fYULinux联盟
ps.setXXX(1,xxx);fYULinux联盟
...fYULinux联盟
ps.addBatch();fYULinux联盟
}fYULinux联盟
ps.executeBatch();

一个PreparedStatement,可以把一个sql语句,变换参数多次执行,一次更新。

(三)事务的处理

1、关闭Connection的自动提交

cn.setAutoCommit(false);

2、执行一系列sql语句

要点:执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close

Statement sm ;fYULinux联盟
sm = cn.createStatement(insert into user...);fYULinux联盟
sm.executeUpdate();fYULinux联盟
sm.close();fYULinux联盟
sm = cn.createStatement("insert into corp...);fYULinux联盟
sm.executeUpdate();fYULinux联盟
sm.close();

3、提交

cn.commit();

4、如果发生异常,那么回滚

cn.rollback();

fYULinux联盟
fYULinux联盟
fYULinux联盟

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·动态创建、压缩Access数据库(*.MDB)  (2007-10-30 16:08:12)
 ·通过JAVAScript实现页面自适应  (2007-10-30 14:27:43)
 ·如何优化JavaScript脚本的性能  (2007-10-30 14:25:25)
 ·几个有用的Javascript验证脚本  (2007-10-30 14:24:47)
 ·Javascript+ASP打造无刷新新闻列表  (2007-10-30 14:23:38)
 ·如何用javascript防止双击  (2007-10-30 14:19:44)
 ·JavaScript 访问 JSF 组件的方法  (2007-10-30 14:18:21)
 ·JavaScript实现仿Windows关机效果  (2007-10-30 14:14:42)
 ·JavaScript去除空格的三种方法  (2007-10-30 14:07:32)
 ·用Javascript评估用户输入密码的强度  (2007-10-30 14:06:19)