java 数据库基本操作 {})y^L
1、java数据库操作基本流程 F$ {4X /9n
2、几个常用的重要技巧: a!u3HS-i
可滚动、更新的记录集 i<:p.ug-O
批量更新 s`Vf+l0
事务处理 C"No5r'K3
x^2 W?<
java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 ;Uk!jQh
1、取得数据库连接 0^iJlR2
1)用DriverManager取数据库连接 $h]NXC6J
例子 LhKY}R
String className,url,uid,pwd; +E#PJ_H=F8
className = "oracle.jdbc.driver.OracleDriver"; }bgo )<i
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr; Y UZKle
uid = "system"; p,s&61]
pwd = "manager"; x vJ^@w'
Class.forName(className); Xoi9d1fO
Connection cn = DriverManager.getConnection(url,uid,pwd); J" wKR y
2)用jndi(java的命名和目录服务)方式 !&0a<~Wi
例子 d"l}Ny)C
String jndi = "jdbc/db"; +
o{*r#
Context ctx = (Context) new InitialContext().lookup("java:comp/env"); 4g'}h`kh
DataSource ds = (DataSource) ctx.lookup(jndi); dk4D+*R
Connection cn = ds.getConnection(); p\ok_*b
多用于jsp中 nr<.YeJ
2、执行sql语句 L`pY27|
1)用Statement来执行sql语句 b\M b*o
String sql; F#^L9
Statement sm = cn.createStatement(); Av[Ud
*~
sm.executeQuery(sql); // 执行数据查询语句(select) 2b~
HHVruX
sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close(); +<B|qcT!
2)用PreparedStatement来执行sql语句 5"e+& zU~f
String sql; mCG;[4gM
sql = "insert into user (id,name) values (?,?)"; r?]%d!
PreparedStatement ps = cn.prepareStatement(sql); 2i"HqAB
ps.setInt(1,xxx); U~hCn+0
ps.setString(2,xxx); A{t"M-<
... Jbkt'Z(&J
ResultSet rs = ps.executeQuery(); // 查询 A_]D~HH
int c = ps.executeUpdate(); // 更新 @Z"?^2
Yim#Pq&_
3、处理执行结果 W`5a:"Vg
查询语句,返回记录集ResultSet J[MVE4&
更新语句,返回数字,表示该更新影响的记录数 |thad!?
ResultSet的方法 e-jw^
1、next(),将游标往后移动一行,如果成功返回true;否则返回false 7NeDs$
2、getInt("id")或getSting("name"),返回当前游标下某个字段的值 k|l5 "&K~.
+L n M\n
4、释放连接 !2wETs?
cn.close(); wyNC|P;j$g
一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection +{'lZa
#[Z<