java 数据库基本操作 aVu!Qk=Z/
1、java数据库操作基本流程 ,!_6X9N-h
2、几个常用的重要技巧: '^TeV=
可滚动、更新的记录集 HThZ4Kg+
批量更新 a
U\|ZCH\]
事务处理 s|WwBT
2 {?]W/&fS
java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 e@vtJaSu
1、取得数据库连接 %)7t2D
1)用DriverManager取数据库连接 Y'iI_cg
例子 SAdT#0J
String className,url,uid,pwd; Imv#7{ndq
className = "oracle.jdbc.driver.OracleDriver"; ir<e^a
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr; |OJWQU;最后关闭Connection zhw*Bed<
w||t3!M+n
可滚动、更新的记录集 57q=
1、创建可滚动、更新的Statement 2?~nA2+vm
Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY); jg?UwR&
该Statement取得的ResultSet就是可滚动的 1(Is
7
2、创建PreparedStatement时指定参数 .~o{i_JH
PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); )P(S:x'b0
ResultSet.absolute(9000); 4fKvB@O@.
批量更新 WPRk>j
1、Statement {}$rN@OM$
Statement sm = cn.createStatement(); BsFO]F5mmX
sm.addBatch(sql1); $L^%*DkM
sm.addBatch(sql2); >.qFhO\1so
... ytY\&m
sm.executeBatch() Ln#o:" E
一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有 1x_EAHZ>7
2、PreparedStatement aLg,-@
PreparedStatement ps = cn.preparedStatement(sql); sa+
JN^[X
{ :=B.)]F.)
ps.setXXX(1,xxx); 7"Xy8]i{z
... nDvfb*\
ps.addBatch(); d7kE}{,
} oSrA4g
ps.executeBatch(); TIJH}Ri
一个PreparedStatement,可以把一个sql语句,变换参数多次执行,一次更新。 |6Y:W$7k
\NNA"
事务的处理 Kk},
PU=
1、关闭Connection的自动提交 1R}9k)JQ
cn.setAutoCommit(false); e&x)g;bn
2、执行一系列sql语句 D]E=0+
要点:执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close Ze%S<xT!O
Statement sm ; .h
<=C&Yg
sm = cn.createStatement(insert into user...); WuE]pm]c
sm.executeUpdate(); qVh?%c1.Y
sm.close(); dlo`](5m
sm = cn.createStatement("insert into corp...); S!A:/(^WB
sm.executeUpdate(); P1OYS\
sm.close(); f1:>H.m`
3、提交 oL~1M=r
cn.commit(); ,IhQ %)l
4、如果发生异常,那么回滚 L&+k`b
cn.rollback();