java 数据库基本操作 M]&F1<
1、java数据库操作基本流程 t|q@~B
:
2、几个常用的重要技巧: @]ydWd
可滚动、更新的记录集 Z
4,nl
批量更新 @q0\oG4L
事务处理 p^PAbCP'|3
lA}(63j+b
java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 e]-bB#-A
1、取得数据库连接 5P~{*of
1)用DriverManager取数据库连接 =Tv;?U C
例子 ~/LO @
String className,url,uid,pwd; :tclYX
className = "oracle.jdbc.driver.OracleDriver"; 5.!iVyN
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr; `7<4]#b^o
uid = "system"; m' D_zb9+
pwd = "manager"; Y?Ph%i2E
Class.forName(className); ?HT+| !4p
Connection cn = DriverManager.getConnection(url,uid,pwd); \xD.rBbt
2)用jndi(java的命名和目录服务)方式 \IB@*_G
例子 vAZc.=+ >
String jndi = "jdbc/db"; O ;,BzA-n
Context ctx = (Context) new InitialContext().lookup("java:comp/env"); :%ms6j/B&V
DataSource ds = (DataSource) ctx.lookup(jndi); Sx{vZS3
Connection cn = ds.getConnection(); J8Bz|.@Q
多用于jsp中 L{_Q%!h3]
2、执行sql语句 _7df(+.{<A
1)用Statement来执行sql语句 Tjba@^T
String sql; 7=yV8.cD
Statement sm = cn.createStatement(); NzB"u+jB
sm.executeQuery(sql); // 执行数据查询语句(select) JL0>-kg
sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close(); *@6,Sr)_
2)用PreparedStatement来执行sql语句 )/VhkSXbG!
String sql; 67Z@Hg
sql = "insert into user (id,name) values (?,?)"; 5~GHAi
PreparedStatement ps = cn.prepareStatement(sql); n/$1&x1
ps.setInt(1,xxx); k=D_9_
ps.setString(2,xxx); &&Ruy(&]I
... .}'49=c
ResultSet rs = ps.executeQuery(); // 查询 t"[x x_i
int c = ps.executeUpdate(); // 更新 [Q(FBoI|
dqd:V$o
3、处理执行结果 m$b5Vqq
查询语句,返回记录集ResultSet 8Mx+tA
更新语句,返回数字,表示该更新影响的记录数 z0=(l?)#
ResultSet的方法 9K~0:c
1、next(),将游标往后移动一行,如果成功返回true;否则返回false h/`]=kCl
2、getInt("id")或getSting("name"),返回当前游标下某个字段的值 =[]V$<G'w{
o@SL0H-6|
4、释放连接 UQZ<sp4v;
cn.close(); XL9smFq
一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection ?U+^ctwv7
{C+blzh6
可滚动、更新的记录集 Wtl/xA_
1、创建可滚动、更新的Statement Zj,1)ii
Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY); 37C'knW
该Statement取得的ResultSet就是可滚动的 r@e/<