java 数据库基本操作 -i V&-oP
1、java数据库操作基本流程 8U/q3@EC
2、几个常用的重要技巧: Vpt)?];P
可滚动、更新的记录集 [VT&
批量更新 ;/N[tO?Q
事务处理 ;tf1#6{
bESmKe(
java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 VjtI1I
1、取得数据库连接 U/>f" F
1)用DriverManager取数据库连接 A-~#ydv
例子 +h pXMO%?
String className,url,uid,pwd; ^b~&}uU
className = "oracle.jdbc.driver.OracleDriver"; $^.LZ1Jd
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr; 3%/]y=rA
uid = "system"; Vl{CD>$,
pwd = "manager"; <&n3"
Class.forName(className); },2-\-1
Connection cn = DriverManager.getConnection(url,uid,pwd); jj0@ez{3
2)用jndi(java的命名和目录服务)方式 b=9(gZ 9
例子 5@tpJ8E8$
String jndi = "jdbc/db"; nZfTK>)A0
Context ctx = (Context) new InitialContext().lookup("java:comp/env"); *DLv$/(0
DataSource ds = (DataSource) ctx.lookup(jndi); 7I/Sfmqy"O
Connection cn = ds.getConnection(); <]b}R;9v
多用于jsp中 V2ypmkn8&
2、执行sql语句 QUaz;kNC7
1)用Statement来执行sql语句 DdJxb{y7
String sql; I--WS[
Statement sm = cn.createStatement(); e!l!T@
pf
sm.executeQuery(sql); // 执行数据查询语句(select) GIWgfE?
sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close(); y%|nE((
2)用PreparedStatement来执行sql语句 VBF3N5
;W
String sql; d0>V^cB '?
sql = "insert into user (id,name) values (?,?)"; :bE ^b
PreparedStatement ps = cn.prepareStatement(sql); rwtSn?0z"
ps.setInt(1,xxx); -DlKFN
ps.setString(2,xxx); Yi{[llru
... Xl#vVyO
ResultSet rs = ps.executeQuery(); // 查询 {DI_i +2
int c = ps.executeUpdate(); // 更新 t^ Aios~F
@?!/Pl49R
3、处理执行结果 HyiuU`
查询语句,返回记录集ResultSet <.HHV91
更新语句,返回数字,表示该更新影响的记录数 yH|ucN~k5S
ResultSet的方法 Z9i,#/
1、next(),将游标往后移动一行,如果成功返回true;否则返回false .lb2`!'r&
2、getInt("id")或getSting("name"),返回当前游标下某个字段的值 3Ym5SrKK
Uey.@ 2Q
4、释放连接 )*G3q/l1u6
cn.close(); %aaOws
一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection DGC-`z
j23OgbI
可滚动、更新的记录集 R#
8D}5[&
1、创建可滚动、更新的Statement Gnl6>/L,
Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY); %\}|&