java 数据库基本操作 5]Da{Wmgs
1、java数据库操作基本流程 @R6 ttx
2、几个常用的重要技巧: Xq#Y*lKVD
可滚动、更新的记录集 9(_{`2R8
批量更新 *|:Q%xr-
事务处理 7L(eh7
J
m{
java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 Ve 3 ;
1、取得数据库连接 n(ir[w#,]"
1)用DriverManager取数据库连接 @4+#Xd7"
例子 ~Qj}ijWD
String className,url,uid,pwd; HTjkR*E
className = "oracle.jdbc.driver.OracleDriver"; ~f>2U]F>5
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr; y0bq;(~X~
uid = "system"; $K}DB N; 4
pwd = "manager"; S6i@"h5
Class.forName(className); }^ FulsC
Connection cn = DriverManager.getConnection(url,uid,pwd); Q(7ob}+jQ
2)用jndi(java的命名和目录服务)方式 @E9" Zv-$
例子 PO-"M)M
String jndi = "jdbc/db"; 5p"BD'^:
Context ctx = (Context) new InitialContext().lookup("java:comp/env"); U]6&b
DataSource ds = (DataSource) ctx.lookup(jndi); &m^@9E)S/
Connection cn = ds.getConnection(); KM,|} .@:
多用于jsp中 e79KbLV
2、执行sql语句 LO%!Z,}
1)用Statement来执行sql语句
^z;JVrW
String sql; Jl<ns,Zg
Statement sm = cn.createStatement(); lHfe<j]
sm.executeQuery(sql); // 执行数据查询语句(select) i\?*=\a
sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close(); eTay>G
2)用PreparedStatement来执行sql语句 ??qq: `s
String sql; k) \gWPH
sql = "insert into user (id,name) values (?,?)"; %CnxjtTo
PreparedStatement ps = cn.prepareStatement(sql); a>mMvc"
ps.setInt(1,xxx); @\P4/+"9
ps.setString(2,xxx); y*b3&%.ml
... q?j|K|%
ResultSet rs = ps.executeQuery(); // 查询 `{K_/Cit
int c = ps.executeUpdate(); // 更新 qi[Z,&
.i"W8~<e
3、处理执行结果 Qt>>$3]!!
查询语句,返回记录集ResultSet
=Ufr^naA
更新语句,返回数字,表示该更新影响的记录数 Bn?V9TEoO
ResultSet的方法 c "=N
1、next(),将游标往后移动一行,如果成功返回true;否则返回false d=O3YNM:v
2、getInt("id")或getSting("name"),返回当前游标下某个字段的值 ;^){|9@
W m&