1、java数据库操作的基本流程
2、常用的几个重要技巧:
滚动,可更新的记录集
批量更新
事务处理
java数据库操作的基本流程:获取数据库连接执行sql语句-处理执行结果-释放数据库连接
1、获取数据库连接
1 )用驱动程序管理器连接数据库
示例:
String className,url,uid和pwd;
class name=' Oracle.JDBC.driver.Oracle driver ';
URL=' JDBC : Oracle : thin : @ 127.0.0.133601521: or asvr;
uid='system ';
pwd='manager ';
class.forname(classname );
connection cn=driver manager.getconnection (URL,uid,pwd );
2 )以JNDI(Java命名和目录服务)方式
范例
String jndi='jdbc/db ';
contextCTX=(context ) new InitialContext ) ).lookup('Java:comp/env ' );
datasourceds=(datasource ) CTX.lookup ) JNDI;
Connection cn=ds.getConnection (;
经常在jsp中使用
2 .执行sql语句
1 )在语句中执行sql语句
String sql;
Statement sm=cn.createStatement (;
sm.executequery(SQL; //执行数据查询语句(select )
sm.executeupdate(SQL; //执行数据更新语句(delete、update、inssert、drop等) statement.close );
2 )在预准备语句中执行sql语句
String sql;
SQL='inssertintouser(id,name ) values )? ();
preparedstatementps=cn.preparestatement (SQL;
PS.setint(1,xxx );
PS.setstring(2,xxx );
.
ResultSet rs=ps.executeQuery (; //查询
int c=ps.executeUpdate (; //更新
3 .处理结果
返回查询语句、记录集ResultSet。
更新语句,并返回指示受更新影响的记录数的数字。
ResultSet方法:
1、next ),将光标向后移动一行,成功后返回true; 否则就返回false。
2、返回当前光标下字段的值的getint(id ) (或getsting ) (name )。
3、断开连接。
cn.close (;
通常,先关闭ResultSet,再关闭Statement (或PreparedStatement ),最后再关闭Connection
滚动,可更新的记录集
1、创建可滚动可更新的语句
statementsm=cn.create statement (resultset.type _ scroll _ ensi tive,ResultSet.CONCUR_READ_ONLY );
此Statement获取的ResultSet是可滚动的
2、创建PreparedStatement时指定的参数很多
1、主题
Statement sm=cn.createStatement (;
sm.addbatch(SQL1;
sm.addbatch(SQL2;
.
sm.executeBatch (
可以在执行多个sql语句后批量更新的Statement对象。 这些语句可以是delete、update、inssert等,也可以是2、PreparedStatement
preparedstatementps=cn.prepared statement (SQL;
{
PS.setxxx(1,xxx );
.
ps.addBatch (;
}
ps.executeBatch (;
一个PreparedStatement可以多次执行一个sql语句和转换参数,一次更新。
处理事务
1、关闭连接自动提交
cn.setautocommit(false );
2、执行一系列sql语句
重要信息:在执行每个新的sql语句之前,必须关闭上次执行sql语句的Statement (或PreparedStatemet )
Statement sm;
sm=cn.create statement (inssertintouser…);
sm.executeUpdate (;
sm.close (;
sm=cn.create statement (inssertintocorp…);
sm.executeUpdate (;
sm.close (;
3、提出
cn.commit (;
4、发生异常时进行回滚
cn.rollback (;